什么是java中fopen_s()的等价物

What is equivalent of fopen_s() in java?

本文关键字:等价物 java fopen 什么      更新时间:2023-10-16

我想在java 中转换此代码

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

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

有什么建议吗?

nio似乎需要1.7java,所以我的选择是

RandomAccessFile f = new RandomAccessFile(name, "rw");
f.setLength(0);

我不是Java程序员,但我在网上做了一次短暂的搜索,Java似乎有一个RandomAccessFile,你可以用"rw"模式打开它。

真正等效的方法是使用Files.newByteChannel

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

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

TRUNCATE_EXISTING-如果存在此选项,则现有文件将被截断为0字节大小。当文件仅为读取而打开时,此选项将被忽略。

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

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

如果文件已经存在,那么两者都会破坏该文件。(尽管存在用于追加而非重写的构造函数)

实现您想要的快速方法:

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类,以及本快速指南。