Java中的IO流: 简洁易懂,高效文件读写
2023-10-20 04:02:35
Java IO流简介
Java IO流是Java编程语言中用于读取和写入数据的重要组件。IO流可以是字节流或字符流,字节流用于读取和写入二进制数据,字符流用于读取和写入文本数据。Java IO流提供了多种方法来操作文件、网络连接和其他输入/输出设备。
Java IO传统流式IO
Java IO传统流式IO是Java IO流中最常用的方式。传统流式IO使用InputStream和OutputStream类及其子类来读取和写入数据。InputStream类用于读取数据,OutputStream类用于写入数据。InputStream和OutputStream类提供了多种方法来读取和写入数据,包括read()、write()、skip()和available()方法。
Java IO标准流
Java IO标准流是指System.in、System.out和System.err三个流。System.in用于读取来自键盘的输入,System.out用于向控制台输出数据,System.err用于向控制台输出错误信息。标准流是Java IO流中最常用的流之一,因为它们可以很容易地从任何Java程序中访问。
Java IO nio
Java IO nio是Java IO流中的一种新的IO方式。nio是基于通道和缓冲区的,它比传统的IO方式更加高效。nio提供了多种类来操作通道和缓冲区,包括FileChannel、SocketChannel和ByteBuffer类。
Java IO Files和Paths类
Java IO Files和Paths类是Java 7中引入的两个新的类,它们用于操作文件和路径。Files类提供了多种方法来操作文件,包括read、write、copy和delete方法。Paths类提供了多种方法来创建和操作路径,包括get、resolve和normalize方法。
Java IO流操作示例
读取文件
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
try {
// 创建FileInputStream对象
FileInputStream fis = new FileInputStream("test.txt");
// 创建缓冲区
byte[] buffer = new byte[1024];
// 从文件中读取数据
int len;
while ((len = fis.read(buffer)) != -1) {
// 将读取的数据输出到控制台
System.out.println(new String(buffer, 0, len));
}
// 关闭FileInputStream对象
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
写入文件
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
try {
// 创建FileOutputStream对象
FileOutputStream fos = new FileOutputStream("test.txt");
// 将数据写入到文件中
fos.write("Hello World!".getBytes());
// 关闭FileOutputStream对象
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
复制文件
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile {
public static void main(String[] args) {
try {
// 创建FileInputStream对象
FileInputStream fis = new FileInputStream("test.txt");
// 创建FileOutputStream对象
FileOutputStream fos = new FileOutputStream("test-copy.txt");
// 复制文件
int len;
byte[] buffer = new byte[1024];
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
// 关闭FileInputStream和FileOutputStream对象
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
结论
Java IO流是Java编程语言中用于读取和写入数据的重要组件。Java IO流提供了多种方式来操作文件、网络连接和其他输入/输出设备。本文对Java IO传统流式IO,标准流,nio,以及Files和Paths类的操作做了演示和介绍,帮助读者快速掌握Java中的文件读写和复制。