IO(Input/Output)流是Java程序中,用于读写数据的机制。I/O流可以连接到各种类型的物理存储连接,如文件、网络套接字、内存和管道等。Java中的I/O流库是java.io。
Java的I/O流有两种类型:
- 字符流(Reader,Writer):以字符为单位进行读取和写入。所有Reader和Writer类都直接继承自抽象类Reader和Writer。
- 字节流(InputStream,OutputStream):以字节为单位进行读取和写入。所有InputStream和OutputStream类都直接继承自抽象类InputStream和OutputStream。
下面是两条示例说明:
- FileInputStream 和 FileOutputStream
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileDemo {
public static void main(String args[]) throws IOException {
File inputFile = new File("input.txt");
File outputFile = new File("output.txt");
FileInputStream fis = new FileInputStream(inputFile);
FileOutputStream fos = new FileOutputStream(outputFile);
int ch;
while ((ch = fis.read()) != -1) {
fos.write(ch);
}
fos.close();
fis.close();
}
}
上面的示例代码读取了名为input.txt的文件并将其写入名为output.txt的文件。程序中使用了FileInputStream和FileOutputStream类。
- BufferedReader 和 BufferedWriter
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileDemo2 {
public static void main(String args[]) throws IOException {
FileReader fr = new FileReader("input.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("output.txt", true);
BufferedWriter bw = new BufferedWriter(fw);
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
}
bw.close();
fw.close();
br.close();
fr.close();
}
}
上面的示例代码读取了名为input.txt的文件并将其按行写入名为output.txt的文件。程序中使用了BufferedReader和BufferedWriter类。
以上两条示例展示了Java中I/O流的用法,其中输入和输出流可以连接到不同类型的物理存储连接,他们可以连接到文件、网络套接字、内存和管道等。这为Java基于文件和网络的应用程序提供了强大的支持。