JAVA输入/输出
在 Java 中,输入/输出(I/O)是通过 java.io 包提供的。这个包包含了一系列的类和接口,用于读写文件、网络资源和其他输入/输出源。以下是 Java I/O 的一些基本概念和常用类:
文件 I/O
文件读取
FileReader:用于读取字符文件。
BufferedReader:包装一个 Reader 对象,提供缓冲功能,以提高读取性能。
java
复制
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); }
文件写入
FileWriter:用于写入字符文件。
BufferedWriter:包装一个 Writer 对象,提供缓冲功能,以提高写入性能。
java
复制
try (BufferedWriter bw = new BufferedWriter(new FileWriter("file.txt"))) { bw.write("Hello, World!"); bw.newLine(); bw.write("This is a test."); } catch (IOException e) { e.printStackTrace(); }
输入流和输出流
InputStream 和 OutputStream:这两个抽象类是所有输入/输出处理的基础。
InputStream 的常见实现包括 FileInputStream、ByteArrayInputStream 等。
OutputStream 的常见实现包括 FileOutputStream、ByteArrayOutputStream 等。
缓冲流
BufferedInputStream 和 BufferedOutputStream:为 InputStream 和 OutputStream 提供缓冲功能,以提高读写性能。
数据流
DataInputStream 和 DataOutputStream:用于读写基本数据类型和字符串。
对象流
ObjectInputStream 和 ObjectOutputStream:用于读写对象序列化数据。
Scanner 类
Scanner 类用于解析文本,可以使用正则表达式来解析不同的类型。
java
复制
try (Scanner scanner = new Scanner(new File("file.txt"))) { while (scanner.hasNextLine()) { String line = scanner.nextLine(); System.out.println(line); } } catch (FileNotFoundException e) { e.printStackTrace(); }
System 类的 I/O 方法
System.in、System.out 和 System.err:分别代表标准输入、标准输出和标准错误流。
try-with-resources 语句
Java 7 引入了 try-with-resources 语句,用于自动管理资源(如文件、网络连接等),确保资源在使用后正确关闭。
java
复制
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) { // 使用资源 } catch (IOException e) { // 处理异常 } // 资源自动关闭
NIO(New I/O)
Java NIO(java.nio 包)提供了一种新的 I/O 编程模型,它具有更好的性能和可伸缩性,特别适合于网络和文件 I/O。
Java 的 I/O 类库非常丰富,提供了多种方式来处理不同类型的 I/O 操作。掌握这些类库对于进行文件操作、网络编程和数据处理非常重要。