Java是一门面向对象的编程语言,与其他面向对象语言不同的是,Java最擅长处理文件读写以及网络数据传输。在Java中,文件读写是必不可少的一个功能,涉及到文件的读、写、复制、删除等操作。本文将介绍Java读写文件的几种方式及其相关知识点。
一、File类读写文件
File类是Java中常用的文件操作类,可以用来处理文件的路径、名称等信息,也可用于文件的读、写等操作。
1. 文件的读取
使用File对象来读取文件可以使用InputStream和BufferedReader,具体代码如下:
```java
File file = new File("test.txt");
InputStream inputStream = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
```
2. 文件的写入
使用File对象来写入文件可以使用OutputStream和BufferedWriter,具体代码如下:
```java
File file = new File("test.txt");
OutputStream outputStream = new FileOutputStream(file);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));
writer.write("Hello, World!");
writer.flush();
writer.close();
```
二、使用Java 8的Files类读写文件
Java 8新引入的Files类,提供了更为便利的文件操作方式,可以用于读、写、复制、移动、删除文件等。
1. 文件的读取
使用Files类来读取文件可以使用newBufferedReader,具体代码如下:
```java
Path path = Paths.get("test.txt");
BufferedReader reader = Files.newBufferedReader(path);
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
```
2. 文件的写入
使用Files类来写入文件可以使用newBufferedWriter,具体代码如下:
```java
Path path = Paths.get("test.txt");
BufferedWriter writer = Files.newBufferedWriter(path);
writer.write("Hello, World!");
writer.flush();
writer.close();
```
三、使用nio读写文件
Java的NIO框架提供了Channel和Buffer来进行文件读写,NIO的读写操作也简单又高效。
1. 文件的读取
使用NIO来读取文件可以使用FileChannel和ByteBuffer,具体代码如下:
```java
File file = new File("test.txt");
RandomAccessFile accessFile = new RandomAccessFile(file, "rw");
FileChannel channel = accessFile.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
while (channel.read(buffer) != -1) {
buffer.flip();
while (buffer.hasRemaining()) {
System.out.print((char) buffer.get());
}
buffer.clear();
}
channel.close();
accessFile.close();
```
2. 文件的写入
使用NIO来写入文件可以使用FileChannel和ByteBuffer,具体代码如下:
```java
File file = new File("test.txt");
RandomAccessFile accessFile = new RandomAccessFile(file, "rw");
FileChannel channel = accessFile.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
buffer.put("Hello, World!".getBytes());
buffer.flip();
channel.write(buffer);
channel.close();
accessFile.close();
```
四、使用Apache的IOUtils读写文件
除了Java自带类可以用于文件读写外,Apache的IOUtils也提供了便捷的读写方法。
1. 文件的读取
使用IOUtils来读取文件,具体代码如下:
```java
File file = new File("test.txt");
InputStream inputStream = new FileInputStream(file);
List for (String line : lines) { System.out.println(line); } ``` 2. 文件的写入 使用IOUtils来写入文件,具体代码如下: ```java File file = new File("test.txt"); OutputStream outputStream = new FileOutputStream(file); String str = "Hello, World!"; IOUtils.write(str, outputStream, StandardCharsets.UTF_8); outputStream.close(); ``` 综上,本文介绍了Java读写文件的几种方式,包括File类、Java 8的Files类、NIO和Apache的IOUtils。除此之外,文章还涉及文件读写和NIO中的Channel和Buffer、字节流和字符流的区别等相关知识点,可供读者学习参考。
友情提示:抵制不良游戏,拒绝盗版游戏。 注意自我保护,谨防受骗上当。 适度游戏益脑,沉迷游戏伤身。 合理安排时间,享受健康生活。适龄提示:适合18岁以上使用!
发表评论 取消回复