Java中IO流解析及代码实例
什么是IO流?
在计算机的世界里,I/O就是指input/output,表示输入和输出,是计算机和外部世界交互的一种方式。
Java中IO流,就是指为了方便对这种输入输出进行操作而引入了一些类和接口,通常分为字节流和字符流两种类型。
字节流和字符流的区别在于数据的单位不同:字节流以字节为单位进行读写,可以用于读写所有类型的文件。而字符流以字符为单位读写,适用于读写文本文件。
Java中IO流的分类
Java中IO流按照读取和写入的单位分为字节流和字符流两类,每个类别都包含输入流和输出流两种类型。
- 字节流:InputStream,OutputStream
- 字符流:Reader,Writer
Java IO流的操作步骤
Java IO流的基本操作步骤分为以下三个步骤:
- 打开输入/输出流
- 读/写数据
- 关闭输入/输出流
代码示例一:使用字节流实现文件复制
下面是一个使用字节流实现文件复制的示例代码:
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
File inFile = new File("input.txt");
fis = new FileInputStream(inFile);
File outFile = new File("output.txt");
fos = new FileOutputStream(outFile);
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
System.out.println("文件复制成功!");
} catch (IOException e) {
System.out.println("文件复制失败:" + e.getMessage());
} finally {
try {
if (fis != null) {
fis.close();
}
if (fos != null) {
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
在这个示例中,我们使用了FileInputStream和FileOutputStream两个类分别实例化了一个输入流和一个输出流。同时使用一个byte数组缓存读取数据,并且通过while循环不断读取数据,直到读取完毕。在读取数据的同时,将数据写入到输出流中,实现文件复制。
代码示例二:使用字符流实现文件复制
下面是一个使用字符流实现文件复制的示例代码:
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
FileReader fr = null;
FileWriter fw = null;
try {
File inFile = new File("input.txt");
fr = new FileReader(inFile);
File outFile = new File("output.txt");
fw = new FileWriter(outFile);
char[] buffer = new char[1024];
int len;
while ((len = fr.read(buffer)) > 0) {
fw.write(buffer, 0, len);
}
System.out.println("文件复制成功!");
} catch (IOException e) {
System.out.println("文件复制失败:" + e.getMessage());
} finally {
try {
if (fr != null) {
fr.close();
}
if (fw != null) {
fw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
和上一个示例类似,这个示例使用了FileReader和FileWriter两个类分别实例化了一个输入流和一个输出流。同时使用一个char数组缓存读取数据,并且通过while循环不断读取数据,直到读取完毕。在读取数据的同时,将数据写入到输出流中,实现文件复制。
总结
Java中IO流是对input/output操作的一种方便的封装,做到了对各种输入输出的统一处理。Java中IO流根据读取和写入的单位可以分为字节流和字符流,并且每个类别都包含输入流和输出流两种类型。在Java中使用IO流的基本操作步骤分为打开输入/输出流、读/写数据和关闭输入/输出流三个步骤。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中IO流解析及代码实例 - Python技术站