1

我想在java中转换这段代码

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

w+打开具有读写功能的空文件。如果给定文件存在,则其内容将被销毁。

有什么建议么?

4

5 回答 5

3

nio似乎需要1.7 java,所以我的看法是

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

我不是 Java 程序员,但我在网上进行了一次短暂的搜索,似乎 Java 有一个RandomAccessFile,你用 mode 打开它"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);

和选项确定是否应打开文件进行读取和/或写入READWRITE

...

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");

您可能想查看官方文档中的 java.io 包,尤其是RandomAccessFile 类本快速指南

于 2012-09-12T04:50:58.157 回答
0

看起来您想要FileOutputStreamFileWriter,具体取决于您要写入的数据类型。它们中的任何一个都可以用文件名实例化。

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

如果文件已经存在,两者都会破坏文件。(虽然构造函数存在用于追加而不是覆盖)

于 2012-09-12T04:39:18.703 回答