举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > java 输入输出流 Java 文件输出流

java 输入输出流 Java 文件输出流

2023-03-09 15:17 Java教程

java 输入输出流 Java 文件输出流

java 输入输出流

Java 输入输出流是 Java 编程中的一个重要概念,它提供了一种从文件、字节流、字符流中读取和写入数据的方法。它是 Java 编程语言的核心,因为它可以帮助开发人员处理文件和数据流。

Java 输入输出流分为两大类:字节流和字符流。字节流用于处理原始字节数据,而字符流用于处理 Unicode 字符数据。Java 提供了一套标准的 I/O 类库来处理这些不同的 I/O 流,这些 I/O 类库都位于 java.io 包中。

InputStream in = new FileInputStream("input.txt");  // 创建一个文件输入流对象
OutputStream out = new FileOutputStream("output.txt");  // 创建一个文件输出流对象

在 Java 中,有很多不同的 I/O 流,如 FileInputStream、FileOutputStream、BufferedInputStream、BufferedOutputStream 等。这些 I/O 流都有不同的功能:FileInputStream 可以用来读取文件中的数据;FileOutputStream 可以用来将数据写入到文件中;BufferedInputStream 和 BufferedOutputStream 可以用来加快 I/O 速度。

此外,Java 还提供了 Reader 和 Writer 类来处理 Unicode 数据。Reader 用来读取 Unicode 数据,Writer 用来写入 Unicode 数据。Reader 和 Writer 都是子类 InputStreamReader 和 OutputStreamWriter (分别是 Reader 的子类和 Writer 的子类)的实例化对象。

Java 文件输出流

Java IO教程 - Java文件输出流


创建输出流

要写入文件,我们需要创建一个FileOutputStream类的对象,它将表示输出流。

// Create a  file  output stream
String destFile = "test.txt";
FileOutputStream fos   = new FileOutputStream(destFile);

当写入文件时,如果文件不存在,Java会尝试创建文件。我们必须准备好处理这个异常,将代码放在try-catch块中,如下所示:

try  {
    FileOutputStream fos   = new FileOutputStream(srcFile);
}catch  (FileNotFoundException e){
    // Error handling code  goes  here
}

如果文件包含数据,数据将被擦除。为了保留现有数据并将新数据附加到文件,我们需要使用FileOutputStream类的另一个构造函数,它接受一个布尔标志,用于将新数据附加到文件。

要将数据附加到文件,请在第二个参数中传递true,使用以下代码。

FileOutputStream fos   = new FileOutputStream(destFile, true);

写数据

FileOutputStream类有一个重载的write()方法将数据写入文件。我们可以使用不同版本的方法一次写入一个字节或多个字节。

通常,我们使用FileOutputStream写入二进制数据。

要向输出流中写入诸如“Hello"的字符串,请将字符串转换为字节。

String类有一个getBytes()方法,该方法返回表示字符串的字节数组。我们给FileOutputStream写一个字符串如下:

String text = "Hello";
byte[] textBytes = text.getBytes();
fos.write(textBytes);

要插入一个新行,使用line.separator系统变量如下。

String lineSeparator = System.getProperty("line.separator");
fos.write(lineSeparator.getBytes());

我们需要使用flush()方法刷新输出流。

fos.flush();

刷新输出流指示如果任何写入的字节被缓冲,则它们可以被写入数据宿。

关闭输出流类似于关闭输入流。我们需要使用close()方法关闭输出流。

// Close  the   output  stream 
fos.close();

close()方法可能抛出一个IOException异常。如果我们希望自动关闭tit,请使用try-with-resources创建输出流。

以下代码显示如何将字节写入文件输出流。

import java.io.File;
import java.io.FileOutputStream;

public class Main {
  public static void main(String[] args) {
    String destFile = "luci2.txt";

    // Get the line separator for the current platform
    String lineSeparator = System.getProperty("line.separator");

    String line1 = "test";
    String line2 = "test1";

    String line3 = "test2";
    String line4 = "test3";

    try (FileOutputStream fos = new FileOutputStream(destFile)) {
      fos.write(line1.getBytes()); 
      fos.write(lineSeparator.getBytes());

      fos.write(line2.getBytes());
      fos.write(lineSeparator.getBytes());

      fos.write(line3.getBytes());
      fos.write(lineSeparator.getBytes());

      fos.write(line4.getBytes());

      // Flush the written bytes to the file 
      fos.flush();

      System.out.println("Text has  been  written to "
          + (new File(destFile)).getAbsolutePath());
    } catch (Exception e2) {
      e2.printStackTrace();
    }
  }
}

上面的代码生成以下结果。




阅读全文
以上是VUE中文网为你收集整理的java 输入输出流 Java 文件输出流全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们