关于Java中的IO流总结(推荐)
概述
在Java中,IO(Input/Output)流是通常用于读取和写入数据的方式。在Java中的IO包提供了很多实现,包括了输入/输出流、文件读取和写入、网络数据传输等。IO流以字节流和字符流两种形式存在,对应到Java中分别为InputStream/OutputStream和Reader/Writer。
IO流的分类
按照流向,IO流可以分为输入流和输出流两种;按照类型分为字符流和字节流,按照处理数据位置的不同又分为文件流和内存流。具体分类如下:
1. 按照流向分类
- 输入流:从数据源(如文件、网络、内存等)读取到程序中。
- 输出流:将程序处理的数据写入到指定的位置(如文件、网络、内存等)。
2. 按照类型分类
- 字符流:以字符为单位处理(最小可处理单位为char)。
- 字节流:以字节为单位处理(最小可处理单位为byte)。
3. 按照数据处理位置分类
- 文件流:与文件路径和文件名相关联,可以进行文件的读取、写入等操作。
- 内存流:可以使用内存中的字节数组等进行读取和写入数据。
IO流的工作方式
IO流的工作方式为先打开一个数据源或目的地,然后通过各种IO流进行数据的读取或写入,最后关闭数据源或目的地。流的读取和写入是一个阻塞过程,即当没有数据可读取或写入时,代码会被阻塞(即停止运行),直到数据源或目的地有了数据可读取或写入才会继续运行。因此,使用IO流时需要注意数据流的状态,防止出现阻塞等问题。
Java IO流的使用
Java中的IO流使用步骤包括以下几个方面:
1. 打开数据源或目的地
可以使用Java API提供的File类来创建和指定文件路径或内存位置。
2. 创建IO流
IO流通常需要依赖数据源和目的地的类型来进行选择和创建。
例如,如果要读写文件,则可以使用FileInputStream和FileOutputStream;若要读写字符串,可以使用StringReader和StringWriter;若要读写网络数据,则可以使用Socket类等。
3. 使用IO流进行读写操作
打开数据源或目的地并创建IO流之后,便可以进行读写操作,例如读取文件或写入数据等。为了提高性能和减少IO调用从而提高数据的读写效率,可以使用缓冲流来进行读写操作。
4. 关闭IO流和数据源或目的地
使用完IO流之后,应当及时关闭以释放内存和资源,并且避免出现阻塞等问题。
示例
示例一:文件读取
public static void main(String[] args) throws Exception {
File file = new File("E:/test.txt"); // 创建File对象
FileInputStream fis = new FileInputStream(file); // 创建文件输入流
byte[] buffer = new byte[1024]; // 创建一个1024字节的缓冲区
int length = 0;
while ((length = fis.read(buffer)) != -1) {
String content = new String(buffer, 0, length); // 将文件内容存放到content中
System.out.println(content);
}
fis.close(); // 关闭输入流
}
示例二:文件写入
public static void main(String[] args) throws Exception {
File file = new File("E:/test.txt"); // 创建File对象
FileOutputStream fos = new FileOutputStream(file); // 创建文件输出流
String content = "Hello World!"; // 要写入文件的内容
fos.write(content.getBytes()); // 将内容写入到文件中
fos.close(); // 关闭输出流
}
以上示例分别演示了Java中的输入流和输出流的读写操作,讲解了如何使用缓冲流来提高读写效率,并以文件读写为例进行了讲解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Java中的IO流总结(推荐) - Python技术站