1

このコードをJavaに変換したい

fopen_s(&stream, "path", "w+");

w+読み取りと書き込みの両方で空のファイルを開きます。指定されたファイルが存在する場合、その内容は破棄されます。

助言がありますか?

4

5 に答える 5

3

nioには1.7javaが必要なようですので、私の見解は

RandomAccessFile f = new RandomAccessFile(name, "rw");
f.setLength(0);
于 2012-09-12T04:45:26.240 に答える
2

私はJavaプログラマーではありませんが、Webを少し探しましたが、JavaにはがRandomAccessFileあり、モードで開くようです"rw"

于 2012-09-12T04:38:49.137 に答える
1

真の同等物はを使用することFiles.newByteChannelです。

final SeekableByteChannel channel = Files.newByteChannel(Paths.get("path"),
    StandardOpenOptions.READ, StandardOpenOptions.WRITE,
    StandardOpenOptions.TRUNCATE_EXISTING);

READおよびオプションはWRITE、ファイルを読み取りまたは書き込み、あるいはその両方のために開く必要があるかどうかを決定します。

..。

TRUNCATE_EXISTING-このオプションが存在する場合、既存のファイルは0バイトのサイズに切り捨てられます。ファイルが読み取り専用で開かれている場合、このオプションは無視されます。

于 2012-09-12T04:42:48.973 に答える
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パッケージを確認することをお勧めします。

于 2012-09-12T04:50:58.157 に答える
0

書き込みたいデータの種類に応じて、FileOutputStreamまたはFileWriterのいずれかが必要なようです。どちらもファイル名でインスタンス化できます。

FileOutputStream fis = new FileOutputStream("/path/to/file");
FileWriter fw = new FileWriter("/path/to/file2");

また、ファイルがすでに存在する場合は、両方がファイルを壊してしまいます。(ただし、上書きではなく追加するためのコンストラクターが存在します)

于 2012-09-12T04:39:18.703 に答える