我想在java中转换这段代码
fopen_s(&stream, "path", "w+");
w+
打开具有读写功能的空文件。如果给定文件存在,则其内容将被销毁。
有什么建议么?
nio似乎需要1.7 java,所以我的看法是
RandomAccessFile f = new RandomAccessFile(name, "rw");
f.setLength(0);
我不是 Java 程序员,但我在网上进行了一次短暂的搜索,似乎 Java 有一个RandomAccessFile
,你用 mode 打开它"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");
您可能想查看官方文档中的 java.io 包,尤其是RandomAccessFile 类和本快速指南。
看起来您想要FileOutputStream或FileWriter,具体取决于您要写入的数据类型。它们中的任何一个都可以用文件名实例化。
FileOutputStream fis = new FileOutputStream("/path/to/file");
FileWriter fw = new FileWriter("/path/to/file2");
如果文件已经存在,两者都会破坏文件。(虽然构造函数存在用于追加而不是覆盖)