Java-эквивалент .net FileStream - PullRequest
1 голос
/ 17 января 2012

У меня есть небольшая библиотека .Net, которую я хотел бы перенести на Java.Частью требования для этой библиотеки является то, что она должна сериализовать состояние в файл на диске, и этот файл должен оставаться «открытым», чтобы другие экземпляры библиотеки не могли получить доступ к этому файлу, но большинство создавало свой собственный экземпляр.В C # я использовал FileStream, который открывается с FileShare.None для защиты от чтения / записи в файл другими.Удерживая FileStream, я могу читать и писать в файл, вызывая Flush () для записи на диск и используя SetLength (..), я могу сократить уже существующий файл после записи содержимого.

В Java я не являюсьуверен, какой класс предлагает наиболее похожие свойства.RandomAccessFile - моя лучшая ставка, но так как я не очень хорошо разбираюсь в java, я мог бы пропустить какой-то лучше подходящий класс или некоторые предостережения с RandomAccessFile.

1 Ответ

1 голос
/ 17 января 2012

Проверьте FileWriter, прочитайте API-документы, чтобы увидеть, соответствует ли он вашим потребностям.

FileWriter предназначен для написания потоков символов. Для записи потоков необработанных байтов, рассмотрите возможность использования FileOutputStream.

Читая ваш пост еще раз, я действительно думаю, что это может ответить на ваш вопрос:

Как предотвратить переопределение файла при чтении и обработке его с Java?

...