首页 > 编程语言 >【Java】 IO流使用方法 (常见方法)

【Java】 IO流使用方法 (常见方法)

时间:2024-08-15 16:27:30浏览次数:11  
标签:文件 Java 读取 字符 read 写入 write IO 方法

Java系列文章目录

补充内容 Windows通过SSH连接Linux
第一章 Linux基本命令的学习与Linux历史


文章目录

一、前言

二、学习内容:

  • File
  • InputStream
  • OutPutStream
  • BufferedReader
  • BufferedWriter
  • FileReader
  • FileWriter

三、问题描述

  • 文件传输过程
  • 文档的使用

四、解决方案:

4.1 File 的使用

参考文档:
文档搜索使用

在这里插入图片描述
参考代码:

  1. 创建文件夹
File file = new File("");
file.mkdirs();
  1. 文件输入流与输出流:
FileInputStream file1 = new FileInputStream("E:\\review_first_teacher\\edu-manager\\src\\main\\java\\org\\example\\test\\local\\student.txt");
FileOutputStream file2 = new FileOutputStream("E:\\review_first_teacher\\edu-manager\\src\\main\\java\\org\\example\\test\\local\\student.txt");
  • 创建 FileInputStream 对象,打开指定路径下的 student.txt 文件,以便读取数据
  • 创建 FileOutputStream 对象,打开相同路径下的 student.txt 文件,以便写入数据。注意,这会覆盖文件中的原内容。
  1. 读取文件内容写入数据到文件
int read = 0;
while(read!=-1)
{
    read = file1.read();
    System.out.println((char)read);
}

file2.write("早hello".getBytes());
file2.write("\n".getBytes());

4.2 防止乱码问题

步骤:

  1. 定义文件路径
  2. 创建 BufferedReader
  3. 读取文件内容
  4. 创建 BufferedWriter
  5. 写入新行和数据
String path = "E:\\review_first_teacher\\edu-manager\\src\\main\\java\\org\\example\\test\\local\\student.txt";
BufferedReader bufferedReader = new BufferedReader(new FileReader(path));
String str = null;
while((str = bufferedReader.readLine())!=null)
{
    System.out.println(str);
}

BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(path,true));
String str = "hello";
bufferedWriter.newLine();
bufferedWriter.write(str);
bufferedWriter.flush();

五、总结:

5.1 学习总结:

  1. File
  • 用途: 用于表示文件或目录的路径。
  • 功能: 可以创建、删除和管理文件或目录。

常用方法:
exists(): 检查文件是否存在。
createNewFile(): 创建一个新文件。
delete(): 删除文件。
getName(): 获取文件名。
length(): 获取文件的大小(以字节为单位)。

  1. FileInputStream
  • 用途: 用于从文件中读取字节数据。
  • 功能: 可以读取文件内容,以便进行处理或显示。
    常用方法:
    read(): 读取一个字节。
    read(byte[] b): 将多个字节读取到一个数组中。
  1. FileOutputStream
  • 用途: 用于向文件写入字节数据。
  • 功能: 可以向文件中写入内容,通常用于保存数据。

常用方法:
write(int b): 写入一个字节。
write(byte[] b): 将数组中的多个字节写入文件。
flush(): 刷新缓冲区,将数据写入文件。
close(): 关闭文件,释放资源。
总结

File: 用于文件和目录的操作。
FileInputStream: 从文件中读取数据。
FileOutputStream: 向文件中写入数据。

  1. BufferedReader
  • 用途: 用于高效地读取文本文件的内容。
  • 功能: 相较于直接使用 FileReader,BufferedReader 使用缓冲区来减少每次读取操作的开销,从而提高读取效率。

常用方法:
readLine(): 读取一行文本,返回字符串。
read(): 读取一个字符。
close(): 关闭流,释放资源。

  1. BufferedWriter
  • 用途: 用于高效地写入文本文件内容。
  • 功能: 相较于直接使用 FileWriter,BufferedWriter 使用缓冲区来批量写入数据,从而提高写入效率。

常用方法:
write(String s): 将字符串写入文件。
newLine(): 写入一个新行(换行符)。
flush(): 刷新缓冲区,确保所有数据都写入文件。
close(): 关闭流,释放资源。

总结

BufferedReader: 用于高效读取文本,适合需要逐行读取的场景。
BufferedWriter: 用于高效写入文本,适合需要逐行写入或大量数据的场景。

  1. FileReader
  • 用途: 用于从文本文件中读取字符数据。
  • 功能: 直接读取文件中的字符,适合处理文本文件。

常用方法:
read(): 读取一个字符,返回字符的整数值。
read(char[] cbuf): 读取多个字符到字符数组中。
close(): 关闭流,释放资源。

  1. FileWriter
  • 用途: 用于向文本文件写入字符数据。
  • 功能: 直接向文件中写入字符,适合处理文本文件。

常用方法:
write(int c): 写入一个字符。
write(String s): 写入一串字符(字符串)。
write(char[] cbuf): 将一个字符数组写入文件。
close(): 关闭流,释放资源。
总结

FileReader: 主要用于读取文本文件的字符。
FileWriter: 主要用于向文本文件写入字符。两者都非常简单,适合小规模的文件操作,但相对较低效,对于大文件推荐使用 BufferedReader 和 BufferedWriter。

(后续有遇到问题再添加)


声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。

标签:文件,Java,读取,字符,read,写入,write,IO,方法
From: https://blog.csdn.net/m0_66070037/article/details/141201663

相关文章

  • Let Me Teach You a Lesson (Easy Version)
    显然当\(n\)为偶数的时候比较好考虑,将互相交换的两组放在一起,无论什么情况,这两个组的最大值更小最小值更大是更优的,而且由于\((a+b)+(c+d)=(a+c)+(b+d)\),所以最大值更小当前仅当最小值更大,不会出现最大值更小最小值也更小的情况,所以直接枚举四种情况就好了然后来考虑当\(n\)为奇......
  • STM32与华为云IoTDA的上传下达
    实现了Mqtt的链接后,需要与华为云IoTDA进行属性上报、命令解析、命令应答等。需要参照华为云官网给出的API参考使用前必读_设备接入IoTDA;1.华为云函数构建1.1.设备属性上报该功能就是用于设备按产品模型中定义的格式将属性数据上报给平台,最通常的温度信息设备状态等,上报后......
  • edge recognition 一种识别边缘的方法
       是按X/Y方向找一点特征的像素吗?怎么实现的,有没盆友参透......
  • Windows11 微软Microsoft官方制作系统U盘方法,系统安装最详细教程
    准备一个8G容量以上的U盘制作系统盘注意,在制作系统盘时会格式化U盘,所以最好准备个空U盘,请做好备份!防止资料丢失。因为做系统盘要清空原有U盘的所有数据。制作系统盘windows系统一般建议安装最新版本,如果习惯使用win10可以安装win10版本,如果是12代之后的英特尔CPU最好安装win11,对......
  • yolo数据标注方法
    用labelImg标注数据集先下载python安装后,在本地shell中输入(注意pip升级版本)pipinstalllabelImg启动labelImg在终端输入labelImg如下图:在pycharm项目中新建两个文件夹,一个叫images,另一个叫labels,然后将所有数据图片复制到images当中。一般用labelImg我们都要在文件中......
  • 使用dotenv保护JavaScript代码中的秘密信息
    把诸如apikey这种秘密信息写死的源代码里不可取,比如通常源代码会通过git仓库等进行管理,这样敏感信息就会被共享了。我们选择使用dotenv库把敏感信息配置在.env文件中,然后把.env文件添加到gitignore文件里,不上传到代码仓库。node程序启动后,会将.env文件里的配置项加载到进程对应......
  • io 依赖记录
    cuda需要大于11.8版本aptinstallnvidia-container-toolkitcat/etc/docker/daemon.json{"exec-opts":["native.cgroupdriver=cgroupfs"],"insecure-registries":["production.cloudflare.docker.com"],"......
  • 电脑怎么清理缓存数据,清理电脑缓存数据的方法
    清理电脑缓存数据是维护电脑性能和释放存储空间的重要步骤。以下是一些常见且有效的方法来清理电脑缓存数据:一、使用系统自带工具1.磁盘清理使用cleanmgr命令快速打开磁盘清理工具。在Windows系统中,可以使用磁盘清理工具来删除临时文件、系统文件、缩略图等缓存数据。打开“......
  • 鸿蒙HarmonyOS NEXT:使用axios方法请求实时天气数据
    通过axios方法请求高德天气查询api,实现获取实时天气数据,接下来是实现步骤:模块导入与数据准备:通过以下语句导入了必要的模块和数据:importaxios,{AxiosResponse,AxiosError}from'@ohos/axios'//导入axiosimport{cities}from'./tools/citys';//调用事先存好的城......
  • 学习Java第20天
    何为方法System.out.println(),那么它是什么呢?Java是语句的集合,它们在一起执行一个功能方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最......