用java.io包对文件进行读写/处理字符和字节等操作

在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();
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值