今天主要学习了Java中的输入输出(I/O)系统,这是Java编程中用于处理数据输入和输出的核心机制。I/O系统提供了丰富的类和接口,用于读取和写入文件、网络数据等,是实现程序与外部世界交互的重要工具。
Java I/O 框架主要分为两个部分:字节流(Byte Streams)和字符流(Character Streams)。
字节流:用于处理二进制数据,如文件、网络数据等。字节流的基类是InputStream和OutputStream。InputStream用于读取字节数据,OutputStream用于写入字节数据。常见的字节流类包括FileInputStream、FileOutputStream、BufferedInputStream、BufferedOutputStream等。
字符流:用于处理字符数据,如文本文件等。字符流的基类是Reader和Writer。Reader用于读取字符数据,Writer用于写入字符数据。常见的字符流类包括FileReader、FileWriter、BufferedReader、BufferedWriter等。
文件读取(FileInputStream)
FileInputStream用于从文件中读取字节数据。例如,读取一个文本文件:
java
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamExample {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("example.txt")) {
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个例子中,使用FileInputStream读取文件example.txt中的字节数据,并将其转换为字符输出。
文件写入(FileOutputStream)
FileOutputStream用于向文件中写入字节数据。例如,向一个文件写入文本数据:
java
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamExample {
public static void main(String[] args) {
try (FileOutputStream fos = new FileOutputStream("example.txt")) {
String content = "Hello, World!";
fos.write(content.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个例子中,使用FileOutputStream将字符串"Hello, World!"写入文件example.txt中。