Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Проверить не занят файл другим процессом / 9 сообщений из 9, страница 1 из 1
14.01.2016, 16:25
    #39147509
JDS
JDS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить не занят файл другим процессом
Пробовал через
File.canWrite() - не ловит.

Попробовал через
PrintWriter out = new PrintWriter(file.getAbsoluteFile());
если файл занят, ругается то, что надо, но при этом, если файл не занят, он очищается.

Как дальше жить? )
...
Рейтинг: 0 / 0
14.01.2016, 16:38
    #39147522
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить не занят файл другим процессом
JDSПробовал через
File.canWrite() - не ловит.

Этот метод проецируется на chmod и виндовые атрибуты файла.

JDSПопробовал через
PrintWriter out = new PrintWriter(file.getAbsoluteFile());
если файл занят, ругается то, что надо, но при этом, если файл не занят, он очищается.

Стыдно. Стыдно не знать базовый Java API. Очень рекомендую пройти сертификацию.
Или научитесь смотреть в исходники:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    public PrintWriter(File file) throws FileNotFoundException {
        this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file))),
             false);
    }
    ...

    public FileOutputStream(File file) throws FileNotFoundException {
        this(file, false);
    }

    public FileOutputStream(File file, boolean append) {
    ...



JDSКак дальше жить? )
Например так
...
Рейтинг: 0 / 0
14.01.2016, 16:58
    #39147548
JDS
JDS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить не занят файл другим процессом
Blazkowicz , да стыдна )
Но спасибо, tryLock помог вроде как.
...
Рейтинг: 0 / 0
14.01.2016, 17:03
    #39147552
JDS
JDS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить не занят файл другим процессом
Даже не tryLock, а просто (ну да пустой catch оч. плохо):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
...
        Boolean isLocked = true;
        
        while (isLocked) {
            try {
                FileOutputStream os = new FileOutputStream("....file_name", false);
                os.close();
                isLocked = false;
                System.out.println("Свободен");
                break;
            } catch (Exception e) {}
            
            Thread.sleep(100);
            System.out.println("Занят");
        }
...
...
Рейтинг: 0 / 0
14.01.2016, 17:06
    #39147555
JDS
JDS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить не занят файл другим процессом
Тфу ты, дурик блин, он же тоже чистит (
...
Рейтинг: 0 / 0
14.01.2016, 17:08
    #39147557
JDS
JDS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить не занят файл другим процессом
append -> true. заработало.
...
Рейтинг: 0 / 0
14.01.2016, 17:11
    #39147563
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить не занят файл другим процессом
JDSДаже не tryLock, а просто (ну да пустой catch оч. плохо):
Вы делаете мне больно своим кодом.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
        while (true) {
            try (FileOutputStream os = new FileOutputStream(file, false)) {
                System.out.println("Свободен");
                break;
            } catch (IOException e) {
                  Thread.sleep(100);
                  System.out.println("Занят: " + e.getMessage());
            }
        }
...
Рейтинг: 0 / 0
14.01.2016, 17:12
    #39147566
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить не занят файл другим процессом
JDSappend -> true. заработало.
Я вам на что и намекал первым ответом.
Во-первых PrintWriter не нужен.
Во-вторых есть флаг.
...
Рейтинг: 0 / 0
14.01.2016, 17:21
    #39147582
JDS
JDS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверить не занят файл другим процессом
BlazkowiczВы делаете мне больно своим кодом.
Согласен ) спасибо
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Проверить не занят файл другим процессом / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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