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

news2024/9/22 13:29:33

Java系列文章目录

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


文章目录

  • Java系列文章目录
  • 一、前言
  • 二、学习内容:
  • 三、问题描述
  • 四、解决方案:
    • 4.1 File 的使用
    • 4.2 防止乱码问题
  • 五、总结:
    • 5.1 学习总结:

一、前言

  • 学习文件IO流
  • 学习文档的使用

二、学习内容:

  • File
  • InputStream
  • OutPutStream
  • BufferedReader
  • BufferedWriter

三、问题描述

  • 文件传输过程

四、解决方案:

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。

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


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2039103.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IPFS、IPNS 网站部署

目录 概念IPFS 网站IPNS 网站网站迁移到 IPFS/IPNS1. 连接 Github2. 选择仓库3. 配置 Build4. 绑定域名5. 绑定 IPNS 域名6. 检查 DNSLink概念 以 https://bhitdao.com/ 为例 IPFS 网站 链接为 Hash: ipfs://bafybeifxwlnnvuhbxiszvs2kkckxkxfy36chzoy2f7nrempkpznxrudbsm/…

开源AI智能名片微信小程序:以人性洞察与资源优化为驱动的社群营销新策略

摘要:随着科技的飞速发展,特别是人工智能(AI)技术的广泛应用,传统营销模式正经历着前所未有的变革。本文旨在探讨开源AI智能名片微信小程序如何凭借其独特的功能特性,结合人性洞察、需求解决、资源优化以及…

CLAMP-1

一、信息收集 1、主机发现 nmap 192.168.236.0/24 2、端口扫描 nmap 192.168.236.173 -p- -A 3、目录扫描 dirb http://192.168.236.173 二、漏洞探测 访问80端口 访问 /nt4stopc/ 下面有一些问题,提示必须收集答案 都是一些判断题,对与错对应1与0&…

SQL注入(原理、分类、union、POST注入)

目录 【学习目标、重难点知识】 【学习目标】 【重难点知识】 SQL注入简介 SQL注入原理 SQL注入类型 MySQL与SQL注入的相关知识 information_schema 数据库的结构 数据库查询语句 limit的用法 需要记住的几个函数 注释符号 SQL注入探测方法 SQL注入漏洞攻击流程…

gerrit的使用

配置SSH密钥 用记事本打开电脑里以下文件,复制内容 在gerrit代码库设置里找到菜单 SSH Keys,将以上复制的内容粘贴到New SSH Key处,点击ADD NEW SSH KEY即可。 克隆代码 git clone ssh://..... 下载commit-msg文件 复制代码下载地址里的…

java之校验QQ号是否正确以及如何用正则表达式进行优化

public class RegexDemo {public static void main(String[] args) {String qq"123456789";System.out.println(checkQQ(qq));}public static boolean checkQQ(String qq){//规则:6位到20位之内,0不能在开头,必须全部是数字//核心思想://先把异常数据过滤//下面的…

外部排序(败者树、置换-选择排序、最佳归并树)

外部排序可能会考查相关概念、方法和排序过程,外部排序的算法比较复杂,不会在算法设计上进行考查。 一、外部排序的基本概念与方法 外部排序指待排序文件较大,内存一次放不下,需存放在外存的文件的排序。 1. 基本概念 在许多应用…

python入门之命令提示符和文本创建.py文件

1.命令提示符 程序 快捷键:windowsR 在安装完python以后,可以直接在命令提示符程序上敲代码进行初步尝试。 python解释器 计算机是不认识python代码的,计算机只能识别0和1这个二进制的数,所以需要一个翻译官“python翻译器”。 …

【Linux系列】known_hosts详解

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【Linux网络(一)】Socket编程

文章目录 1. 预备知识1.1 认识端口号1.2 初识TCP协议1.3 初识UDP协议1.4 网络字节序1.5 socket编程接口1.5.1 套接字编程的种类1.5.2 sockaddr结构体1.5.3 socket 常见API1.5.4 地址转换函数 2. 编写UDP服务器与客户端2.1 UDP服务器的创建2.2 UDP服务器接收/发送数据2.3 补充知…

动态规划——背包问题(01背包、完全背包,分组背包与二进制优化)

本蒟蒻写二进制优化开始的时候写昏了,并且昏了一下午。但好在有神犇救命,这篇博客才得以面世——躲着人群 一、01背包 概述: 其常见的问题形式为:给出n个物品,每个物品有对应的价值和体积。给出背包容量后求不超过背…

硬件开发流程

1.看原理图找引脚 --开发板上找到LED,查看丝印 --在原理图中根据丝印找到对应的器件 --找到对应的引脚 2.配置引脚功能(对应硬件的工作原理) 3.控制对应的引脚(或控制器) volatile: 易失性修饰符

qtpdfium 多平台编译

源码下载地址:https://codeload.github.com/kkzi/qpdf/zip/2681018e300738d6da9a9f89f06c93fc3ef17831 参考:https://blog.51cto.com/u_2194662/5256871 开发环境:QT 5.15.2 1. windows下编译: 编译环境:vs2019qt5.15…

【Python】线性规划模型(笔记)

线性规划的作用 求一个线性目标函数在线性可行域内的最值问题 线性规划的典型应用 配送运输问题:选大车还是小车生产规划问题:每种原料各买多少几何切割问题:切割长宽各多少买卖利润问题:最多能挣多少钱… 线性规划的本质 问…

6 二进制、十进制、八进制和十六进制的概念与进制转换,原码、反码、补码的概念与计算

目录 1 进制 1.1 常见的进制 1.2 不同进制的整数在 C 语言中的写法 1.3 printf 以不同进制形式输出整数 1.4 案例:使用不同的进制形式输出同一整数 2 进制的转换 2.1 二进制与十进制转换 2.1.1 二进制转换成十进制 2.1.2 十进制转换成二进制 2.2 八进制和…

pygame 赛亚人打怪

笔者最近学了一点pygame,献丑了。 代码附上,大佬勿喷! import random import timeimport pygameWIDTH 410 HEIGHT 750 ENEMY_BORN pygame.USEREVENT 1 BULLET_BORN pygame.USEREVENT 10 ENEMY_BULLET_BORN pygame.USEREVENT 100 REW…

2024年最新版小程序云开发数据模型的开通步骤,支持可视化数据库管理,支持Mysql和NoSql数据库,可以在vue3前端web里调用操作

小程序官方又改版了,搞得石头哥不得不紧急的再新出一版,教大家开通最新版的数据模型。官方既然主推数据模型,那我们就先看看看新版的数据模型到底是什么。 一,什么是数据模型 数据模型是什么 数据模型是一个用于组织和管理数据的…

Linux信号控制进程种类、内存查看和NICE优先级

1.信号种类 1)SIGHUP 重新加载配置 2)SIGINT 键盘中断CtrlC 3)SINGQUIT 键盘退出Ctrl\ 9)SIGKILL 强制终止 15)SIGTERM 正常结束终止 18)SIGCONT 继续 19)SIGSTOP…

使用克隆软件克隆Windows 10 硬盘

为什么 Windows 用户要克隆硬盘驱动器 您打算将旧硬盘升级为新硬盘吗?是否可以将操作系统迁移到 SSD?如何制作硬盘的相同副本?如何安全地升级操作系统而不会出现可启动故障问题?是否有任何安全便捷的方法可用于传输数据并升级到更…

Linux 中断机制(二)之中断子系统框架

目录 一、概述二、中断控制器 GIC1、Distributor 接口2、Redistributor 接口3、CPU 接口 三、中断类型四、中断号五、中断申请函数1、request_irq 函数2、request_threaded_irq() 函数3、gpio_to_irq 函数4、free_irq 函数 六、中断服务函数 一、概述 一个完整的中断子系统框架…