java nio 持续写文件
时间: 2024-02-01 11:36:56 浏览: 147
Java使用BIO和NIO进行文件操作对比代码示例
Java NIO(New IO)是Java SE 1.4中引入的一组API,用于执行非阻塞I/O操作。使用Java NIO,可以编写高性能、可伸缩性更好的应用程序,特别是在处理大量数据时。下面是使用Java NIO持续写入文件的示例代码:
```java
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
public class FileWritingExample {
public static void main(String[] args) throws IOException {
Path path = Paths.get("output.txt");
FileChannel fileChannel = FileChannel.open(path, StandardOpenOption.CREATE, StandardOpenOption.WRITE);
String data = "Hello World!";
ByteBuffer buffer = ByteBuffer.wrap(data.getBytes());
while (buffer.hasRemaining()) {
fileChannel.write(buffer);
}
fileChannel.close();
}
}
```
在上面的示例中,我们使用`FileChannel`类将数据写入文件。我们首先创建一个`Path`对象来表示要写入的文件,然后创建一个`FileChannel`对象来打开该文件。我们使用`ByteBuffer`类来包装要写入文件的数据,并使用`write()`方法将数据写入通道。我们使用`hasRemaining()`方法检查缓冲区中是否还有未写入的数据。最后,我们关闭文件通道。
如果要在文件末尾持续写入数据,可以使用`StandardOpenOption.APPEND`选项打开文件通道。例如:
```java
FileChannel fileChannel = FileChannel.open(path, StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.APPEND);
```
这将在文件末尾持续写入数据,而不是覆盖之前的内容。
阅读全文