Использование класса java.io.File - PullRequest
1 голос
/ 24 сентября 2011

Когда вы создаете экземпляр объекта File в java-программе, возможно ли, чтобы одновременно работающая программа также имела доступ к файлу для записи?Так, как если бы у меня был объект File с путем к example.txt, может ли другая программа писать в этот файл example.txt, пока у меня есть объект File?

Ответы [ 4 ]

2 голосов
/ 24 сентября 2011

ЕСЛИ вы написали,

 File f=new File("example.txt");

это означает, что вы только создали файловый объект, но не создали файл на жестком диске в соответствии с заданным путем. Также этот файловый объект находится в виртуальной памяти (Java). Если любое другое приложение уже загружено в виртуальную память может получить доступ или вызвать ссылку на объект файла, тогда это приложение может получить доступ к объекту файла.
Если вы создаете файл с помощью

f.createNewFile();

Тогда на вашем жестком диске есть настоящий файл. Затем любое другое приложение может получить к нему доступ как к другим файлам на вашем жестком диске. Вы бы видели здесь

2 голосов
/ 24 сентября 2011

Doing

File f = new File("C:\\test.txt");

ничего не делает с файлом.Таким образом, любой другой поток или процесс может открыть файл, если ему нравится.

Он просто создает объект, который представляет файл, но не открывает его и не трогает его.

1 голос
/ 24 сентября 2011

Да, потому что объект File в Java на самом деле просто представляет путь к файловой системе. На самом деле это не дескриптор файла, который имеет семантику блокировки для базового ресурса. Вы даже можете создавать экземпляры файлов для несуществующих ресурсов.

0 голосов
/ 24 сентября 2011

Да.Наличие экземпляра File имеет мало общего с реальной файловой системой, пока вы не вызовете один из его методов.Фактически, вы можете создавать экземпляры файлов путей, которые даже не существуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...