56

次のようにファイルライターを試します:

String content = "Test File Content";
  • 私は次のように使用しました:Files.write(path, content.getBytes(), StandardOpenOption.CREATE);

file が作成されていない場合、file が作成され、コンテンツが書き込まれます。ただし、 file available の場合、ファイルの内容はTest File ContentTest File Contentであり、コードが繰り返し実行される場合、ファイルの内容はTest File ContentTest File ContentTest File Content...

  • 私は次のように使用しました:Files.write(path, content.getBytes(), StandardOpenOption.CREATE_NEW);

ファイルが作成されていない場合、ファイルが作成され、次のような例外が発生します。

java.nio.file.FileAlreadyExistsException: /home/gyhot/Projects/indexing/ivt_new/target/test-classes/test_file at sun.nio.fs.UnixException.translateToIOException(UnixException.java:88) at ...

java new I/O経由でファイルを上書きするには?

4

2 に答える 2

96

OpenOption引数なしでメソッドを呼び出したい。

Files.write(path, content.getBytes());

Javadoc から:

options パラメータは、ファイルを作成または開く方法を指定します。オプションが存在しない場合、このメソッドは、、、CREATEおよび TRUNCATE_EXISTINGオプションWRITEが存在するかのように機能します。つまり、書き込み用にファイルを開き、ファイルが存在しない場合はファイルを作成するか、最初に既存の通常ファイルを次のサイズに切り詰めます。0

于 2013-11-05T16:42:37.867 に答える
47

StandardOpenOption.TRUNCATE_EXISTINGと StandardOpenOption.CREATE オプションの両方を一緒に使用したい場合:

Files.write(path, content.getBytes(),
         StandardOpenOption.CREATE,
         StandardOpenOption.TRUNCATE_EXISTING );
于 2013-11-05T16:40:29.360 に答える