Java 编程之IO流资料详细整理

Java 编程之IO流资料详细整理

什么是 IO 流

输入输出流(IO流)指的是一种提供了对数据流进行读写的机制,是 Java 中用于处理流数据的一种常用方式。在 Java 中,IO 流分为字节流和字符流两种方式,分别处理二进制数据和文本数据。

IO 流的分类

字节流

字节流是 IO 流中最基本的一种,主要用于处理二进制数据。Java 中的字节流有两个基本的抽象类:InputStream 和 OutputStream,它们是用来表示字节输入流和字节输出流的。

输入流

InputStream可以读取字节数组和字节数组的某一部分数据,也可以读取单个字节、整数、字符串等。常用的实现类有:

类名 说明
FileInputStream 读取本地文件
ByteArrayInputStream 读取字节数组
FilterInputStream 过滤输入流的抽象类
BufferedInputStream 带缓冲的字节输入流
DataInputStream 读取基本数据类型

以下是读取本地文件示例:

try {
    FileInputStream fis = new FileInputStream("test.txt");
    int data;
    while ((data = fis.read()) != -1) {
        System.out.println((char) data);
    }
    fis.close();
} catch (IOException e) {
    e.printStackTrace();
}

输出流

OutputStream 可以写入字节数组、单个字节、整数、字符串等。常用的实现类有:

类名 说明
FileOutputStream 写入本地文件
ByteArrayOutputStream 写入字节数组
FilterOutputStream 过滤输出流的抽象类
BufferedOutputStream 带缓冲的字节输出流
DataOutputStream 写入基本数据类型

以下是写入本地文件示例:

try {
    FileOutputStream fos = new FileOutputStream("test.txt");
    String str = "hello world";
    for (int i = 0; i < str.length(); i++) {
        fos.write(str.charAt(i));
    }
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}

字符流

字符流是用于读写文本信息的一种 IO 流类型,其本质还是字节流,只不过它将字节流转成字符流以方便读写文本数据,Java 中的字符流都继承自 Reader 和 Writer。

输入流

Reader 可以读取字符数组和字符数组的某一部分数据,也可以读取单个字符、字符串等。常用的实现类有:

类名 说明
FileReader 读取本地文件
CharArrayReader 读取字符数组
FilterReader 过滤输入流的抽象类
BufferedReader 带缓冲的字符输入流
InputStreamReader 读取字节流转换为字符流
StringReader 读取字符串

以下是读取本地文件示例:

try {
    FileReader fr = new FileReader("test.txt");
    int data;
    while ((data = fr.read()) != -1) {
        System.out.println((char) data);
    }
    fr.close();
} catch (IOException e) {
    e.printStackTrace();
}

输出流

Writer 可以写入字符数组、单个字符、字符串等。常用的实现类有:

类名 说明
FileWriter 写入本地文件
CharArrayWriter 写入字符数组
FilterWriter 过滤输出流的抽象类
BufferedWriter 带缓冲的字符输出流
OutputStreamWriter 写入字符流转换为字节流
StringWriter 写入字符串

以下是写入本地文件示例:

try {
    FileWriter fw = new FileWriter("test.txt");
    String str = "hello world";
    for (int i = 0; i < str.length(); i++) {
        fw.write(str.charAt(i));
    }
    fw.close();
} catch (IOException e) {
    e.printStackTrace();
}

总结

IO 流作为 Java 中常用的流处理方式,在实际开发中经常需要使用到。开发者需要理解 IO 流的基本概念、分类、常用的实现类以及不同实现类的应用场景,才能灵活运用 IO 流处理复杂的文件读写操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 编程之IO流资料详细整理 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Java黑科技之通过Google Java Style 文件配置IDEA和Ecplise代码风格

    下面我来详细讲解如何通过Google Java Style配置IDEA和Eclipse的代码风格。 一、Google Java Style 及其重要性 Google Java Style是一种Java代码风格规范,它是Google公司内部使用的标准化代码风格规范。通过使用Google Java Style,可以让代码更加规范化、易读、易维护。 Google …

    Java 2023年5月20日
    00
  • Spring重试支持Spring Retry的方法

    当我们在使用Spring框架开发分布式系统时,出现网络或数据库等调用失败是比较常见的。而这些失败可能是暂时性的,例如网络短暂阻塞,或者是由于并发访问导致的故障,这些问题都可以通过重试来解决。Spring Retry正是为了解决这类重试问题而生的。 Spring Retry 是一个用于基于 Spring 的应用中重试操作的框架。它提供了一致的模板和注释支持,以…

    Java 2023年5月19日
    00
  • XML经典问答

    XML经典问答攻略 本文将为您提供针对XML经典问题的攻略,以解决常见的XML相关问题。以下是您需要注意的几个方面: 1. XML文档结构 XML文件通常由一个根元素(root element)组成,并由开始标签和结束标签加以表示。中间可以嵌套若干子元素。元素可以包含属性(attribute)或文本(text)。如下所示: <?xml version=…

    Java 2023年5月20日
    00
  • jsp网页搜索结果中实现选中一行使其高亮

    要在jsp网页搜索结果中实现选中一行使其高亮,我们可以采用以下步骤: 添加CSS样式 我们需要添加一个CSS样式来定义高亮选中的样式,比如我们可以定义一个名为”selected”的样式: .selected { background-color: #ffffcc; } 编写Javascript代码 使用javascript代码,我们可以监听table中的tr…

    Java 2023年6月15日
    00
  • jdbc连接数据库实例详解

    JDBC连接数据库实例详解 在Java程序中,经常需要与数据库进行交互。JDBC(Java Database Connectivity)是Java开发中用于连接和操作数据库的标准API。本文将详细介绍JDBC连接数据库的相关知识,包括JDBC连接步骤、示例代码等。 JDBC连接步骤 JDBC连接数据库的基本步骤如下: 加载数据库驱动 连接数据库 创建Stat…

    Java 2023年5月19日
    00
  • java程序员必须知道的4个书写代码技巧

    Java程序员必须知道的4个书写代码技巧: 1. 编写清晰简洁的代码 编写清晰简洁的代码可以提高代码的可读性,让代码更易于维护和修改。以下是一些编写清晰简洁代码的技巧: 使用有意义的变量和函数命名,用英文单词或单词缩写命名变量和函数; 尽量减少重复代码,把重复的代码封装成函数或类; 避免使用魔法数值,使用常量代替魔法数值; 使用与语言标准一致的缩进格式和代码…

    Java 2023年5月23日
    00
  • Javac/javap 自带工具简单使用讲解

    Javac和Javap是Java语言中自带的两个工具。Javac能够将Java源代码编译为可执行Java字节代码,而Javap则可以将Java字节码反编译为可读性更高的代码。 使用Javac编译Java源代码 Javac是Java编译器,可将Java源文件编译成字节代码。当然,在使用Javac之前,我们需要先下载并安装Java开发工具包(JDK)。以下是使用…

    Java 2023年5月23日
    00
  • 十分钟速懂java知识点 System类

    十分钟速懂java知识点 System类 什么是System类? System类是Java中的一个工具类,提供了许多与系统和程序相关的方法和属性。它包含了标准输入/输出、错误输出、系统属性、系统时间等系统级别的操作。 System类的主要方法 System.out.println() 这是Java中最常用的输出方法。它可以将一段字符串或变量的值输出到控制台。…

    Java 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部