欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > Java核心技术【二十一】Java的I/O流处理:文件的读写操作

Java核心技术【二十一】Java的I/O流处理:文件的读写操作

2024/10/24 4:48:22 来源:https://blog.csdn.net/wcblog/article/details/140293755  浏览:    关键词:Java核心技术【二十一】Java的I/O流处理:文件的读写操作

Java的I/O流处理:文件读写操作

【创作】 不易,【点赞】 是情义,【关注】 是动力,【收藏】 是回忆。
示例代码地址:https://gitee.com/code-in-java/csdn-blog.git

在Java编程中,输入/输出(I/O)流是处理设备输入输出的一种机制,它广泛应用于文件读写、网络通信等领域。对于初学者来说,理解并掌握Java的I/O流处理是非常关键的。本文将详细讲解Java的I/O流,特别是文件读写操作部分,并通过示例代码帮助大家理解相关概念、原理及应用场景。

一、Java I/O流概述

Java的I/O流是一组用于读写数据的类,它们位于java.io包中。根据处理数据类型的不同,Java的I/O流分为字节流和字符流。

  • 字节流:以字节为单位处理数据,主要用于处理二进制文件,如图片、音频、视频等。字节流的抽象基类为InputStreamOutputStream
  • 字符流:以字符为单位处理数据,主要用于处理文本文件。字符流的抽象基类为ReaderWriter

二、文件读写操作

文件读写是I/O流应用中最常见的场景之一。Java提供了FileInputStreamFileOutputStreamFileReaderFileWriter等类来实现文件的读写操作。

1. 使用字节流写入文件

import java.io.FileOutputStream;  
import java.io.IOException;  public class FileWriteExample {  public static void main(String[] args) {  String data = "Hello, Java I/O!";  try (FileOutputStream fos = new FileOutputStream("example.txt")) {  fos.write(data.getBytes());  System.out.println("文件写入成功!");  } catch (IOException e) {  e.printStackTrace();  }  }  
}
  • try (FileOutputStream fos = new FileOutputStream(“example.txt”)) 是一个try-with-resources语句,它自动管理资源。try块结束时,fos将自动关闭,无需显式调用fos.close()
  • FileOutputStream fos = new FileOutputStream(“example.txt”) 创建一个FileOutputStream对象fos,用于向文件example.txt写入数据。如果文件不存在,它将被创建。
  • fos.write(data.getBytes()) 将字符串data转换为字节数组,并使用fos对象将其写入文件。
  • catch (IOException e) 捕获并处理IOException异常,e.printStackTrace() 在控制台上打印异常堆栈跟踪,这有助于调试和识别问题。

代码运行结果:
生成了一个名为 example.txt 的文件
在这里插入图片描述

2. 使用字节流读取文件**

import java.io.FileInputStream;  
import java.io.IOException;  public class FileReadExample {  public static void main(String[] args) {  try (FileInputStream fis = new FileInputStream("example.txt")) {  int content;  while ((content = fis.read()) != -1) {  System.out.print((char) content);  }  } catch (IOException e) {  e.printStackTrace();  }  }  
}

使用FileInputStream在Java中进行文件读取操作,并利用try-with-resources语句自动管理资源。同时,它还展示了如何使用while循环逐个字节地读取文件内容,并将其打印到控制台上。

代码运行结果:
读取了 example.txt 文件的内容

Hello, Java I/O!

3. 使用字符流写入文件

import java.io.FileWriter;  
import java.io.IOException;  public class FileWriterExample {  public static void main(String[] args) {  String data = "Hello, Java I/O with FileWriter!";  try (FileWriter writer = new FileWriter("example2.txt")) {  writer.write(data);  System.out.println("文件写入成功!");  } catch (IOException e) {  e.printStackTrace();  }  }  
}

以上代码演示了如何使用 FileWriter 在Java中将字符串 “Hello, Java I/O with FileWriter!” 写入到名为 example2.txt 的文件中,并处理可能发生的IOException异常。

代码运行结果:
生成了一个名为 example2.txt 的文件
在这里插入图片描述

4. 使用字符流读取文件

import java.io.FileReader;  
import java.io.IOException;  public class FileReaderExample {  public static void main(String[] args) {  try (FileReader reader = new FileReader("example2.txt")) {  int content;  while ((content = reader.read()) != -1) {  System.out.print((char) content);  }  } catch (IOException e) {  e.printStackTrace();  }  }  
}

以上代码演示了如何使用FileReader在Java中逐个字符地读取名为example2.txt的文件内容,并将其打印到控制台上,同时处理可能发生的IOException异常。

代码运行结果:
读取了example2.txt 的内容

Hello, Java I/O with FileWriter!

三、结束语

Java的I/O流处理是Java编程中的一项重要技术,它提供了丰富的API来支持各种输入输出操作。文件读写操作是I/O流应用中的基础,掌握字节流和字符流的使用是进行更复杂I/O操作的前提。希望本文能够帮助初学者更好地理解Java的I/O流处理,并在实践中灵活应用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com