我想在java中转换此代码
fopen_s(&stream, "path", "w+");
w+
打开包含读写的空文件。如果给定文件存在,则其内容将被销毁。
有什么建议吗?
答案 0 :(得分:3)
nio似乎需要1.7 java,所以我的看法是
RandomAccessFile f = new RandomAccessFile(name, "rw");
f.setLength(0);
答案 1 :(得分:2)
我不是Java程序员,但我在网上进行了短暂的搜索,似乎Java有一个RandomAccessFile
并且您使用模式"rw"
打开它。
答案 2 :(得分:1)
真正的等价物是使用Files.newByteChannel
。
final SeekableByteChannel channel = Files.newByteChannel(Paths.get("path"),
StandardOpenOptions.READ, StandardOpenOptions.WRITE,
StandardOpenOptions.TRUNCATE_EXISTING);
READ
和WRITE
选项决定是否应该打开文件进行阅读和/或写作。...
TRUNCATE_EXISTING
- 如果存在此选项,则现有文件将被截断为0字节的大小。仅打开文件进行读取时,将忽略此选项。
答案 3 :(得分:0)
看起来您想要FileOutputStream或FileWriter,具体取决于您要编写的数据类型。它们中的任何一个都可以用文件名实例化。
FileOutputStream fis = new FileOutputStream("/path/to/file");
FileWriter fw = new FileWriter("/path/to/file2");
如果文件已存在,两者都会破坏文件。 (虽然存在构造函数用于追加而不是覆盖)
答案 4 :(得分: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包at the official docs,尤其是RandomAccessFile Class和also this quick guide。