Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Правильный алгоритм работы с файлами. / 25 сообщений из 33, страница 1 из 2
01.12.2012, 02:39:10
    #38060836
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
Подскажите пожалуйста общий алгоритм для работы с файлами, чтобы ничего не "слетало" и даже если слетало, то мы это контролировали. Нужен общий алгоритм типа создаем файл, проверяем на то-то, то-то. Для чтения и для записи.
...
Рейтинг: 0 / 0
01.12.2012, 02:41:22
    #38060838
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90,

ну, и если не сложно, то напишите какими классами предпочтительнее пользоваться в каких случаях, что устарело...
...
Рейтинг: 0 / 0
01.12.2012, 06:04:56
    #38060857
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90чтобы ничего не "слетало" и даже если слетало, то мы это контролировали. Перехватывать исключения.
...
Рейтинг: 0 / 0
01.12.2012, 11:43:34
    #38060924
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90,
не выйдет.
Общий алгоритм:
- пишешь функцию Создать файл:
- ставишь виртуальную машину и в нёё 2-3 Оси
- выделяешь минимальную квоту на диске чтобы файл Ось не могла создать по доступному размеру.
- обрабатываешь исключения и прокидываешь из наверх в СЛОЙ:
чтобы ничего не "слетало" и даже если слетало, то мы это контролировали
...
потом тоже самое поставив на файл атрибут в Оси - "только чтение".
и т.д.
(зависит от того что у вас Слетает ))) )
...
Рейтинг: 0 / 0
01.12.2012, 15:05:15
    #38061048
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90Подскажите пожалуйста общий алгоритм для работы с файлами, чтобы ничего не "слетало" и даже если слетало, то мы это контролировали. Нужен общий алгоритм типа создаем файл, проверяем на то-то, то-то. Для чтения и для записи.
Тут 2 варианта.

Оконное приложение. Ты обрабатываешь ошибку класса IOException и на каждую (!) вываливаешь на экран
лопух с сообщением дескыть "Извините - произошла ошибка ввода вывода. Передайте спойлер в техподдержку".
В спойл вываливаешь весь(!) текст исключения со стеком. Пользователь если он не дурак - разберётся что к чему
или позовёт сисадмина или напишет письмо тебе в личку. На этом всё. Никаких других магических действий делать
не надо.

Серверное приложение . (Бины, компоненты, сущности бизнес слоя). Здесь надо думать по смыслу постановки.
Есть документы типа там ТЗ, SLA и прочие регламентирующие условия запуска. Там на 99.9999% предполагается
что твоё приложение работает в сферическом вакууме. Где идеальные диски. Если условия не соблюдаются или
нештатные то ты умываешь руки. Короче не занимаешся вопросом. Для диагностики обрабатываешь IOException
и на каждую (!) ошибку бросаешь logger.error(ex,ex) и делаешь таймаут хотя-бы на 1 минуту. И повторяешь до
бесконечности. Те кому надо почитают логи. Разберуться. Или поймают трап или емейл от этого же логгера.
И сами разберуться. Это когда отъехал или переполнился диск-хранилище с файлами касаемыми твоего приолжения.
...
Рейтинг: 0 / 0
01.12.2012, 15:13:50
    #38061051
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
mayton,

Мой вопрос чуть проще наверное))

Из условий, что мне известны, это:
- надо проверить на exist файл после его создания.
- код закрытия потоков надо помещать в секцию finally

я о такого рода рекомендациях
...
Рейтинг: 0 / 0
01.12.2012, 15:24:58
    #38061058
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90Из условий, что мне известны, это:
- надо проверить на exist файл после его создания.

Это безсмысленно. Тоесть записать в ячейку число и потом навсякий проверить что оно
записалось? Глупо. Если между этими действиями у вас нет длительности транзакции (а ее
нет) то любой другой процесс имеет право взять этот файл и сделать с ним всё что
угодно. Почему нет?

Если хотите чтоб файл никто не трогал то не закрывайте его.
И пока вы владеете объектом FileOutPutStream или RandomAccess то никто у вас
файл не заберёт.
...
Рейтинг: 0 / 0
01.12.2012, 15:26:34
    #38061060
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90- код закрытия потоков надо помещать в секцию finally

Это сложный вопрос. И требует отдельного обсуждения. И что
вы подразумеваете под потоками? Threads? Streams?
...
Рейтинг: 0 / 0
01.12.2012, 15:29:56
    #38061064
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
mayton,

Я ж говорю - всё просто)
Streams, конечно)
...
Рейтинг: 0 / 0
01.12.2012, 18:00:12
    #38061138
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90mayton,
Я ж говорю - всё просто)
Streams, конечно)
если твои 2 рекомендации выше - просты, то и выполняй их). В чём проблема?
Тебе выше всё верно описали.
А "правильный" алгоритм - это как?
...
Рейтинг: 0 / 0
01.12.2012, 18:44:11
    #38061154
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
Petro123,
Может ещё какие-то есть.
Просто я написал некоторый код. Мне сказали исправить ошибки(реализовать эти рекомендации) - я сделал - сказали, что ещё что-то есть, но типа сам найди...я не могу найти.

вот код:
Что тут "некрасиво"?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
public class Tester {

    public static void main(String args[]) throws FileNotFoundException, IOException {
        BufferedReader in = null;
        BufferedWriter out = null;
        try {
            File file1 = new File("C:\\Users\\redwhite\\Documents\\NetBeansProjects\\StringTest\\text.txt");
            if (!file1.exists() && file1.canRead()) {
                System.out.println("Input file not found");
                return;
            }
            in = new BufferedReader(new FileReader(file1));
            String tmpStr;
            File file2 = new File("lala.txt");
            out = new BufferedWriter(new FileWriter(file2));
            while ((tmpStr = in.readLine()) != null) {
                out.write(new StringBuilder(tmpStr).reverse() + "\n");
            }
        } finally {
            if (in != null) {
                in.close();
            }
            if (out != null) {
                out.close();
            }
        }
    }
}
...
Рейтинг: 0 / 0
01.12.2012, 18:55:17
    #38061165
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90вот код:
Что тут "некрасиво"?
redwhite90,
пять страниц про файлы и НЕкрасиво
Простой вопрос про finally
...
Рейтинг: 0 / 0
01.12.2012, 19:03:19
    #38061169
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90, а что будет если убрать эти строки?

Код: java
1.
2.
3.
4.
if (!file1.exists() && file1.canRead()) {
                System.out.println("Input file not found");
                return;
}



Запусти свои тесты и посмотри что изменилось.
...
Рейтинг: 0 / 0
01.12.2012, 20:07:10
    #38061218
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
mayton,

ничего не поменяется очевидно)
я тут говорю скорее о том, что я, как программист, обязан проконтроллировать
...
Рейтинг: 0 / 0
01.12.2012, 20:12:53
    #38061224
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90я тут говорю скорее о том, что я, как программист, обязан проконтроллировать
например так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Path file = ...;
try {
    // Create the empty file with default permissions, etc.
    Files.createFile(file);
} catch (FileAlreadyExistsException x) {
    System.err.format("file named %s" +
        " already exists%n", file);
} catch (IOException x) {
    // Some other sort of failure, such as permissions.
    System.err.format("createFile error: %s%n", x);
}


смотря ЧТО контролировать)) - уже целый топик об этом
...
Рейтинг: 0 / 0
01.12.2012, 20:22:20
    #38061236
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
Просто на С++ например всегда просили делать проверку на isOpen и всё)

ну то есть у меня всё вполне сносно?
...
Рейтинг: 0 / 0
01.12.2012, 21:00:31
    #38061269
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90mayton,

ничего не поменяется очевидно)
я тут говорю скорее о том, что я, как программист, обязан проконтроллировать
Чел. у тебя код, в котором нет смысла! Ты-же всё равно exception
по протоколу вызова отработаешь.
...
Рейтинг: 0 / 0
01.12.2012, 21:04:00
    #38061272
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
mayton,

мартышкин труд?
...
Рейтинг: 0 / 0
01.12.2012, 21:09:59
    #38061279
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90я сделал - сказали, что ещё что-то есть, но типа сам найди...я не могу найти.
в этом проблема.
Тебя учат думать над кодом.
А ты говоришь - найдите мне ошибку.
Сам ищи - говорят ещё так "ошибка в 17 строке".
Ничего личного.
Удачи!
...
Рейтинг: 0 / 0
01.12.2012, 21:12:58
    #38061284
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
Можно ещё так:
Код: java
1.
функция ЧтобыНеСлетало (Имя файла) - возврат 5 ошибок из Оси



Пробуй, тестируй - пиши.
...
Рейтинг: 0 / 0
01.12.2012, 21:38:40
    #38061310
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
redwhite90, если тебе сказали землю рыть - то рой.
Если препод хочет чтоб ты напрягся. Напрягись.
Но разработчики так не пишут.

Успехов.
...
Рейтинг: 0 / 0
01.12.2012, 22:49:13
    #38061351
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
mayton,

Спасибо, я так и понял, что меня троллят.
Вообще это курсы при IT компании)
...
Рейтинг: 0 / 0
01.12.2012, 22:51:32
    #38061356
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
mayton,

Соответственно вопрос, как пишут разработчики?
...
Рейтинг: 0 / 0
01.12.2012, 23:12:30
    #38061368
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
Не буду давать от себя советы. Зайди на http://sourceforge.net.
Найди проекты по ключевому слову java. Поскачивай исходники
и просто посмотри. Это пример того как люди пишут.

Бывай.
...
Рейтинг: 0 / 0
02.12.2012, 15:05:08
    #38061635
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильный алгоритм работы с файлами.
И задай мой вопрос инструктору курсов. Что будет если убрать блок проверок.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Правильный алгоритм работы с файлами. / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]