在Java中,java.io是一个包(package),它提供了用于处理输入和输出的类和接口。该包包含了许多类,用于读取和写入数据流、操作文件、处理字符和字节等操作。
以下是一些常见的java.io包中类的介绍:
InputStream和OutputStream:抽象类,用于读取和写入字节流。它们是字节输入和输出的基本类,提供了各种方法用于从输入流读取数据和向输出流写入数据。
File:表示文件或目录路径的抽象类。它提供了创建、删除、重命名、检查文件或目录属性等操作的方法。
FileInputStream和FileOutputStream:用于读取和写入文件的字节流。它们继承自InputStream和OutputStream,并提供了一些额外的方法,用于打开和操作文件。
Reader和Writer:抽象类,用于读取和写入字符流。它们是字符输入和输出的基本类,提供了各种方法用于从输入流读取字符和向输出流写入字符。
FileReader和FileWriter:用于读取和写入文件的字符流。它们继承自Reader和Writer,并提供了一些额外的方法,用于打开和操作文件。
BufferedReader和BufferedWriter:提供了缓冲功能的字符流处理类。它们可以提高读取和写入的效率,通过缓冲数据减少了与底层流的交互次数。
InputStreamReader和OutputStreamWriter:用于将字节流转换为字符流和将字符流转换为字节流的类。它们提供了字符流和字节流之间的桥梁,可以指定字符编码来进行转换。
PrintStream和PrintWriter:提供了打印格式化文本的功能。它们可以方便地将各种数据类型转换为字符串并输出到输出流。
这只是java.io包中一些常见类的简要介绍。在实际使用中,你可能会用到其他类和接口,以满足特定的输入输出需求。建议查阅Java官方文档或其他参考资料,以获取更详细的信息和用法示例。

当涉及到java.io包中的各个类时,以下是每个类的详细使用方法和示例:

InputStream和OutputStream:

InputStream和OutputStream是抽象类,无法直接实例化。你需要使用它们的具体子类,例如FileInputStream和FileOutputStream来处理字节流。以下是使用示例:
读取文件并将内容写入另一个文件:

try (FileInputStream fis = new FileInputStream("source.txt");
      FileOutputStream fos = new FileOutputStream("destination.txt")) {
     int byteRead;
     while ((byteRead = fis.read()) != -1) {
         fos.write(byteRead);
     }
 } catch (IOException e) {
     e.printStackTrace();
 }

File:

File类用于操作文件和目录。以下是使用示例:
检查文件是否存在并获取文件信息:

File file = new File("path/to/file.txt");
 boolean exists = file.exists();
 if (exists) {
     boolean isDirectory = file.isDirectory();
     long size = file.length();
     String absolutePath = file.getAbsolutePath();
     // ...
 }

创建目录和文件:

File directory = new File("path/to/directory");
 boolean success = directory.mkdirs(); // 创建目录,包括父目录
 File file = new File("path/to/file.txt");
 boolean success = file.createNewFile(); // 创建文件

FileInputStream和FileOutputStream:

FileInputStream和FileOutputStream类用于读取和写入文件的字节流。以下是使用示例:
读取文件并打印内容:

try (FileInputStream fis = new FileInputStream("file.txt")) {
     int byteRead;
     while ((byteRead = fis.read()) != -1) {
         System.out.print((char) byteRead);
     }
 } catch (IOException e) {
     e.printStackTrace();
 }


写入数据到文件:

try (FileOutputStream fos = new FileOutputStream("file.txt")) {
     String data = "Hello, World!";
     fos.write(data.getBytes());
 } catch (IOException e) {
     e.printStackTrace();
 }

Reader和Writer:

Reader和Writer是抽象类,用于读取和写入字符流。以下是使用示例:
读取文件并打印内容:

try (FileReader reader = new FileReader("file.txt")) {
     int charRead;
     while ((charRead = reader.read()) != -1) {
         System.out.print((char) charRead);
     }
 } catch (IOException e) {
     e.printStackTrace();
 }


写入数据到文件:

try (FileWriter writer = new FileWriter("file.txt")) {
     String data = "Hello, World!";
     writer.write(data);
 } catch (IOException e) {
     e.printStackTrace();
 }

BufferedReader和BufferedWriter:

BufferedReader和BufferedWriter类提供了带有缓冲区的字符流处理。以下是使用示例:
读取文件并打印内容:

try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
     String line;
     while ((line = reader.readLine()) != null) {
         System.out.println(line);
     }
 } catch (IOException e) {
     e.printStackTrace();
 }


写入数据到文件:

try (BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt"))) {
     String data = "Hello, World!";
     writer.write(data);
 } catch (IOException e) {
     e.printStackTrace();
 }

逐行读取文件并打印内容:

try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
     String line;
     while ((line = reader.readLine()) != null) {
         System.out.println(line);
     }
 } catch (IOException e) {
     e.printStackTrace();
 }


逐行写入数据到文件:

try (BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt"))) {
     String[] lines = {"Line 1", "Line 2", "Line 3"};
     for (String line : lines) {
         writer.write(line);
         writer.newLine(); // 写入换行符
     }
 } catch (IOException e) {
     e.printStackTrace();
 }

InputStreamReader和OutputStreamWriter:

InputStreamReader和OutputStreamWriter类用于字节流和字符流之间的转换。以下是使用示例:
从文件读取字符并写入到另一个文件:

try (InputStreamReader isr = new InputStreamReader(new FileInputStream("source.txt"));
      OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("destination.txt"))) {
     int charRead;
     while ((charRead = isr.read()) != -1) {
         osw.write(charRead);
     }
 } catch (IOException e) {
     e.printStackTrace();
 }

从文件读取字符并写入到另一个文件(指定字符编码):

try (InputStreamReader isr = new InputStreamReader(new FileInputStream("source.txt"), "UTF-8");
      OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("destination.txt"), "UTF-8")) {
     int charRead;
     while ((charRead = isr.read()) != -1) {
         osw.write(charRead);
     }
 } catch (IOException e) {
     e.printStackTrace();
 }

PrintStream和PrintWriter:

PrintStream和PrintWriter类提供了方便的打印和格式化输出功能。以下是使用示例:
使用PrintStream打印到控制台:

try (PrintStream ps = new PrintStream(System.out)) {
     ps.println("Hello, World!");
 } catch (IOException e) {
     e.printStackTrace();
 }


使用`PrintWriter`写入到文件:

try (PrintWriter writer = new PrintWriter(new FileWriter("file.txt"))) {
     writer.println("Hello, World!");
 } catch (IOException e) {
     e.printStackTrace();
 }


使用PrintStream进行格式化输出:

try (PrintStream ps = new PrintStream(System.out)) {
     String name = "Alice";
     int age = 25;
     double salary = 5000.0;
     ps.printf("Name: %s, Age: %d, Salary: %.2f", name, age, salary);
 } catch (IOException e) {
     e.printStackTrace();
 }


使用PrintWriter写入到文件(追加模式):

try (PrintWriter writer = new PrintWriter(new FileWriter("file.txt", true))) {
     writer.println("This line will be appended to the file.");
 } catch (IOException e) {
     e.printStackTrace();
 }