下面是详细的总结攻略。
Java IO 简介
Java IO(输入/输出) 是非常重要的一部分,在日常开发中我们经常需要读取文件或者网络数据。Java IO 可以帮助我们进行文件的读写、网络通讯等操作。我们可以通过 File、InputStream、OutputStream、Reader、Writer 等类来对IO进行操作。
Java IO 相关知识总结
下面是一些关键点的总结。
InputStream 和 OutputStream
InputStream 是一个抽象类,它是所有输入流的父类。通常,我们使用它的子类对文件、网络字节流进行读取操作。例如:
InputStream input = new FileInputStream("D:\\input.txt");
OutputStream 也是一个抽象类,它是所有输出流的父类。同样,我们通常使用它的子类输出数据到文件或者网络流中。
OutputStream output = new FileOutputStream("D:\\output.txt");
Reader 和 Writer
Reader 是使用字符的抽象类,它的子类实现了不同的字符集的处理方式,比如 UTF-8/GBK 等。Writer 按照特定的字符集向输出流中输出字符。下面是一个简单的例子:
Reader reader = new FileReader("D:\\input.txt");
Writer writer = new FileWriter("D:\\output.txt");
BufferedReader 和 BufferedWriter
经常在读写文件的时候需要读取/写入一行,这个时候可以使用 BufferedReader 和 BufferedWriter。例如:
BufferedReader reader = new BufferedReader(new FileReader("D:\\input.txt"));
BufferedWriter writer = new BufferedWriter(new FileWriter("D:\\output.txt"));
ByteArrayInputStream 和 ByteArrayOutputStream
ByteArrayInputStream 和 ByteArrayOutputStream 是用于在内存中操作字节流的类。可以将字节数组或字节流存入内存中,进行读写操作。
byte[] byteArray = new byte[]{...};
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(byteArray);
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
InputStream 和 Reader 之间的相互转换
InputStreamReader 类是将第一个字节流从 InputStream 向 Reader 的转换类。例如:
InputStream inputStream = new FileInputStream("D:\\input.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, Charset.forName("UTF-8"));
InputStream 和 OutputStream 之间的相互转换
ByteArrayInputStream 和 ByteArrayOutputStream 是用于在内存中操作字节流的类。可以将字节数组或字节流存入内存中,进行读写操作。
String str = "hello world";
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(str.getBytes());
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = byteInputStream.read(buffer)) > -1 ) {
byteOutputStream.write(buffer, 0, len);
}
byteOutputStream.flush();
例子
例子1:复制文件
// 定义读取并写入的路径
final String inputFilePath = "/input.txt";
final String outputFilePath = "/output.txt";
// 读取文件
BufferedReader reader = new BufferedReader(new FileReader(inputFilePath));
// 写入文件
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilePath));
int len;
char[] buffer = new char[1024];
while ((len = reader.read(buffer)) > 0) {
writer.write(buffer, 0, len);
}
reader.close();
writer.close();
例子2:将字符串写入到文件
// 定义需要写入到文件的内容
String content = "Hello, World!";
// 定义文件路径
final String filePath = "/output.txt";
// 写入到文件中
try (Writer writer = new FileWriter(filePath)) {
writer.write(content);
}
以上是Java IO的相关知识以及两个例子。希望对你有帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:你肯定能看懂的Java IO相关知识总结 - Python技术站