java 有哪些常用的输入输出类

发布时间:2025-04-27      访问量:23
在 Java 中,输入输出(I/O)操作是非常重要的一部分,Java 提供了丰富的类来处理不同类型的输入输出需求。这些类主要位于`java.io`和`java.nio`包中。下面为你详细介绍一些常用的输入输出类。

基于字节的 I/O 类
输入流
- **`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(); } } }
- **`ByteArrayInputStream`**:用于从字节数组中读取数据。
java import java.io.ByteArrayInputStream; public class ByteArrayInputStreamExample { public static void main(String[] args) { byte[] byteArray = {65, 66, 67, 68, 69}; try (ByteArrayInputStream bais = new ByteArrayInputStream(byteArray)) { int data; while ((data = bais.read()) != -1) { System.out.print((char) data); } } } }

输出流
- **`FileOutputStream`**:用于将字节数据写入文件。
java import java.io.FileOutputStream; import java.io.IOException; public class FileOutputStreamExample { public static void main(String[] args) { String data = "Hello, World!"; try (FileOutputStream fos = new FileOutputStream("output.txt")) { byte[] bytes = data.getBytes(); fos.write(bytes); } catch (IOException e) { e.printStackTrace(); } } }
- **`ByteArrayOutputStream`**:用于将数据写入字节数组。
java import java.io.ByteArrayOutputStream; import java.io.IOException; public class ByteArrayOutputStreamExample { public static void main(String[] args) { try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) { String data = "Hello, Java!"; byte[] bytes = data.getBytes(); baos.write(bytes); byte[] result = baos.toByteArray(); System.out.println(new String(result)); } catch (IOException e) { e.printStackTrace(); } } }

基于字符的 I/O 类
输入流
- **`FileReader`**:用于从文件中读取字符数据。
java import java.io.FileReader; import java.io.IOException; public class FileReaderExample { public static void main(String[] args) { try (FileReader fr = new FileReader("example.txt")) { int data; while ((data = fr.read()) != -1) { System.out.print((char) data); } } catch (IOException e) { e.printStackTrace(); } } }
- **`BufferedReader`**:提供缓冲功能,提高读取效率,通常与其他字符输入流一起使用。
java import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class BufferedReaderExample { public static void main(String[] args) { try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }

输出流
- **`FileWriter`**:用于将字符数据写入文件。
java import java.io.FileWriter; import java.io.IOException; public class FileWriterExample { public static void main(String[] args) { String data = "Hello, Java!"; try (FileWriter fw = new FileWriter("output.txt")) { fw.write(data); } catch (IOException e) { e.printStackTrace(); } } }
- **`BufferedWriter`**:提供缓冲功能,提高写入效率,通常与其他字符输出流一起使用。
java import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class BufferedWriterExample { public static void main(String[] args) { String data = "Hello, Java!"; try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) { bw.write(data); } catch (IOException e) { e.printStackTrace(); } } }

其他重要的 I/O 类
- **`Scanner`**:主要用于从控制台或其他输入源读取基本数据类型和字符串。
java import java.util.Scanner; public class ScannerExample { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = scanner.nextInt(); System.out.println("你输入的整数是:" + num); scanner.close(); } }
- **`PrintWriter`**:用于格式化输出,可将数据写入文件或其他输出流。
java import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; public class PrintWriterExample { public static void main(String[] args) { try (PrintWriter pw = new PrintWriter(new FileWriter("output.txt"))) { pw.println("Hello, Java!"); pw.printf("整数: %d, 小数: %.2f", 10, 3.14); } catch (IOException e) { e.printStackTrace(); } } }

这些类为 Java 程序提供了强大的输入输出能力,你可以根据具体的需求选择合适的类来完成相应的操作。
堆内存
多线程
strdup
初始化器
冒泡排序
增删改查
BufferedReader
输入输出
面向对象
生命周期
闭包的概念
原型链
Flask
mysql-connector-python
单例模式
浅拷贝
隔离级别
索引
InnoDB
左连接
聚合函数
PuTTY
TRUNCATE
str_starts_with_many
DateTime
array_combine
闭包的概念