Java基础入门之IO流
本文主要介绍Java IO流的基础知识,包括IO流的概述、IO流分类、IO流的读取和写入操作以及常用IO流示例。
IO流概述
Java IO(Input/Output)流是一种用于处理输入/输出的机制。它提供了一种操作任意数据源的方式,包括磁盘文件、网络连接等等。
Java IO流由四个抽象类组成:
- InputStream:字节输入流
- OutputStream:字节输出流
- Reader:字符输入流
- Writer:字符输出流
这四个抽象类是所有Java IO流的基础。
IO流分类
Java IO流可以根据读写方式、数据类型、功能特点等分类。
按照读写方式,Java IO流可分为输入流和输出流。其中,输入流从数据源读取数据,输出流向数据源输出数据。
按照数据类型,Java IO流可分为字节流和字符流。其中,字节流是以字节为单位读写操作的IO流,字符流是以字符为单位读写操作的IO流。
按照功能特点,Java IO流可分为节点流和处理流。其中,节点流是直接与数据源进行交互的流,而处理流是通过节点流处理数据的流。
IO流的读取和写入操作
Java IO流的读取和写入操作基本上都是通过节点流完成的。但由于节点流比较底层,使用起来不太方便,所以Java提供了一系列处理流来对节点流进行包装,从而实现更方便的数据读取和写入操作。下面分别介绍字节流和字符流的读取和写入操作。
字节流的读取和写入操作
字节流的读取和写入操作主要通过InputStream和OutputStream类实现。其中,InputStream提供了read()方法来从输入流中读取数据,OutputStream提供了write()方法来向输出流中写入数据。
以下是一个读取文件内容并将其写入到另一个文件的代码示例:
public static void copyFile(File source, File dest) throws IOException {
try (InputStream input = new FileInputStream(source);
OutputStream output = new FileOutputStream(dest)) {
byte[] buffer = new byte[1024];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
}
}
以上代码首先创建了一个输入流和一个输出流,然后通过一个大小为1024的字节数组来读取文件内容并将其写入到输出流中。
字符流的读取和写入操作
字符流的读取和写入操作主要通过Reader和Writer类实现。其中,Reader提供了read()方法来从输入流中读取数据,Writer提供了write()方法来向输出流中写入数据。
以下是一个读取控制台输入并将其写入到文件中的代码示例:
public static void saveInputToFile(File file) throws IOException {
try (Reader input = new InputStreamReader(System.in);
Writer output = new FileWriter(file)) {
char[] buffer = new char[1024];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
}
}
以上代码首先创建了一个控制台输入流和一个输出流,然后通过一个大小为1024的字符数组来读取控制台输入并将其写入到输出流中。
常用IO流示例
读取文件内容
以下代码可以读取文件内容并将其输出到控制台:
public static void readFile(File file) throws IOException {
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
}
以上代码首先创建了一个BufferedReader对象来读取文件内容,然后通过循环读取每一行并将其输出到控制台。
写入文件内容
以下代码可以向指定文件中写入文本内容:
public static void writeFile(File file, String content) throws IOException {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
writer.write(content);
}
}
以上代码首先创建了一个BufferedWriter对象来向文件中写入内容,然后调用write()方法向文件中写入指定文本内容。
总结
Java IO流是Java中常用的一种数据输入输出机制。本文介绍了Java IO流的概述、IO流分类、IO流的读取和写入操作以及常用IO流示例。在实际开发过程中,应根据数据源类型、读写方式、功能特点等进行选择和使用,以便更方便、更高效地进行数据读写操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java基础入门之IO流 - Python技术站