このコードをJavaに変換したい
fopen_s(&stream, "path", "w+");
w+
読み取りと書き込みの両方で空のファイルを開きます。指定されたファイルが存在する場合、その内容は破棄されます。
助言がありますか?
nioには1.7javaが必要なようですので、私の見解は
RandomAccessFile f = new RandomAccessFile(name, "rw");
f.setLength(0);
私はJavaプログラマーではありませんが、Webを少し探しましたが、JavaにはがRandomAccessFile
あり、モードで開くようです"rw"
。
真の同等物はを使用することFiles.newByteChannel
です。
final SeekableByteChannel channel = Files.newByteChannel(Paths.get("path"),
StandardOpenOptions.READ, StandardOpenOptions.WRITE,
StandardOpenOptions.TRUNCATE_EXISTING);
READ
およびオプションはWRITE
、ファイルを読み取りまたは書き込み、あるいはその両方のために開く必要があるかどうかを決定します。..。
TRUNCATE_EXISTING
-このオプションが存在する場合、既存のファイルは0バイトのサイズに切り捨てられます。ファイルが読み取り専用で開かれている場合、このオプションは無視されます。
あなたが望むものを達成するための迅速な方法:
import java.io.*;
// Create a new file output connected to "myfile.txt"
out = new FileOutputStream("myfile.txt");
// Create a new file input connected to "myfile.txt"
in = new FileInputStream("myfile.txt");
公式ドキュメント、特にRandomAccessFileクラスとこのクイックガイドでjava.ioパッケージを確認することをお勧めします。
書き込みたいデータの種類に応じて、FileOutputStreamまたはFileWriterのいずれかが必要なようです。どちらもファイル名でインスタンス化できます。
FileOutputStream fis = new FileOutputStream("/path/to/file");
FileWriter fw = new FileWriter("/path/to/file2");
また、ファイルがすでに存在する場合は、両方がファイルを壊してしまいます。(ただし、上書きではなく追加するためのコンストラクターが存在します)