欢迎访问宙启技术站
智能推送

Java函数中的文件输入输出(I/O)操作

发布时间:2023-06-15 03:31:37

Java是一种面向对象的编程语言,具有丰富的库和函数,支持各种输入输出(I/O)操作。这些操作可以访问文件系统和网络,并用于读取和写入文件、使用网络协议、进行网络通信等。在本文中,我们将介绍Java中的文件输入输出操作。

文件输入输出操作

Java中的文件I/O操作是通过InputStream和OutputStream类实现的。InputStream和OutputStream类是抽象类,不能被直接实例化。它们的派生类ByteBufferedInputStream、BufferedOutputStream、DataInputStream、DataOutputStream、ObjectInputStream和ObjectOutputStream是可以直接使用的。

文件输入

Java中的文件输入是通过InputStream类实现的。InputStream类提供了读取单个字符、字节或字节数组的方法。在使用InputStream读取文件时,有三种不同的方式:文件字节流、文件字符流和文件缓存流。

1. 文件字节流

文件字节流用于读取二进制文件,如图片、MP3音频、视频等文件。在Java中,可以使用FileInputStream类创建文件字节流对象,并使用read()或read(byte[] b)方法从文件中读取数据。下面是一个使用FileInputStream读取文件的示例代码:

try (FileInputStream fileInputStream = new FileInputStream("file.txt")) {

   int i;

   while ((i = fileInputStream.read()) != -1) {

      System.out.print((char) i);

   }

}

catch (IOException e) {

   System.err.println(e);

}

2. 文件字符流

文件字符流用于读取文本文件,如txt、Java、XML文件等。在Java中,可以使用FileReader类创建文件字符流对象,并使用read()或read(char[] cbuf)方法从文件中读取数据。下面是一个使用FileReader读取文件的示例代码:

try (FileReader fileReader = new FileReader("file.txt")) {

   int i;

   while ((i = fileReader.read()) != -1) {

      System.out.print((char) i);

   }

}

catch (IOException e) {

   System.err.println(e);

}

3. 文件缓冲流

文件缓冲流用于读取文本和二进制文件,并且比原始文件I/O流的速度更快。在Java中,可以使用BufferedReader类和BufferedInputStream类创建文件缓冲流对象。下面是一个使用BufferedReader读取文件的示例代码:

try (BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"))) {

   String line;

   while ((line = bufferedReader.readLine()) != null) {

      System.out.println(line);

   }

}

catch (IOException e) {

   System.err.println(e);

}

文件输出

Java中的文件输出是通过OutputStream类实现的。OutputStream类提供了写入单个字符、字节或字节数组的方法。在使用OutputStream写入文件时,有两种不同的方式:文件字节流和文件字符流。

1. 文件字节流

文件字节流用于写入二进制文件,如图片、MP3音频、视频等文件。在Java中,可以使用FileOutputStream类创建文件字节流对象,并使用write()或write(byte[] b)方法将数据写入文件。下面是一个使用FileOutputStream写入文件的示例代码:

try (FileOutputStream fileOutputStream = new FileOutputStream("file.txt")) {

   String s = "Java FileOutputStream example";

   byte[] bytes = s.getBytes();

   fileOutputStream.write(bytes);

}

catch (IOException e) {

   System.err.println(e);

}

2. 文件字符流

文件字符流用于写入文本文件,如txt、Java、XML文件等。在Java中,可以使用FileWriter类创建文件字符流对象,并使用write()或write(char[] cbuf)方法将数据写入文件。下面是一个使用FileWriter写入文件的示例代码:

try (FileWriter fileWriter = new FileWriter("file.txt")) {

   String s = "Java FileWriter example";

   fileWriter.write(s);

}

catch (IOException e) {

   System.err.println(e);

}

总结

Java中的文件I/O操作是通过InputStream和OutputStream类实现的。InputStream和OutputStream类是抽象类,不能被直接实例化。它们的派生类ByteBufferedInputStream、BufferedOutputStream、DataInputStream、DataOutputStream、ObjectInputStream和ObjectOutputStream是可以直接使用的。文件I/O操作分为文件输入和文件输出两种方式。文件输入通过InputStream类实现,可以使用FileInputStream类、FileReader类和BufferedReader类实现。文件输出通过OutputStream类实现,可以使用FileOutputStream类、FileWriter类实现。在处理文本文件时,应该使用字符流,处理二进制文件时应该使用字节流。