[java基础揉碎]文件IO流

目录

文件

什么是文件

 文件流​编辑

常用的文件操作 

创建文件方式一 

创建文件方式二 

创建文件方式三

tip:为什么new file 了还有执行createNewFile?new File的时候其实是在内存中创建了文件对象, 还没有在磁盘中, 当执行createNewFile的时候才是往磁盘中写入​编辑

获取文件的信息 (常用)

目录的操作 (windows文件夹), 在java中目录也被当作一个文件,方式使用没有区别

Io流

 io原理即流的分类

​编辑

字节流常用子类

 文件输入流​编辑

文件输出流

文件拷贝

字符流

FileReader

FileWriter

close和flush都可以实现写入,但是close相等于flush我刷新还有个关闭

 节点流和处理流(包装流)

​编辑

处理流修饰器模式模拟

节点流和处理流的区别

BufferedReader使用方法 

 BufferedWriter使用方法 

字节处理流 

字节处理流视频拷贝使用方法 

对象流

​编辑

对象流的使用

​编辑

对象流的细节 

标准输入输出流 

转换流

InputStreamReader上面的问题用转换流后得到解决 

 OutputStreamWriter

字节打印流 

字符打印流

Properties


​​​​​​​文件

什么是文件

 文件流

常用的文件操作 

创建文件方式一 

 

创建文件方式二 

 

创建文件方式三

这里这样写也是可以的,反斜杠

tip:为什么new file 了还有执行createNewFile?
new File的时候其实是在内存中创建了文件对象, 还没有在磁盘中, 当执行createNewFile的时候才是往磁盘中写入

获取文件的信息 (常用)

 

目录的操作 (windows文件夹), 在java中目录也被当作一个文件,方式使用没有区别

 

Io流

 io原理即流的分类

字节流和字符流那个效率高呢?字符流(应用于文本文件等), 因为字符流的单位比字节大, 至于一个字符等于多少个字节需要看他的编码格式; 那为什么还用字节流呢? 因为还有一些二进制文件,例如声音文件,视频文件, word文件

 

字节流常用子类

 文件输入流

演示读取文件(这种方法不能有汉字,因为是一个字节一个字节读的, 汉字是三个字节,只读了一个, 就会乱码)
单个字节的读取,效率比较低

 

改为字节数组的方式,效率比较快

文件输出流

 

文件拷贝

 

一定要使用write(buf,0,readLen)这个方法写, 如果用 write(buf),在最后几个字节传输长度不够数组长度但是还是传了这么多的时候,图片不会显示

 

此时运行可能会报这个错,这是c盘需要管理员权限才能访问 , 所以可以改用其他盘上面测试 

 

字符流

FileReader

第二种方式, 效率会高一点

FileWriter

 

不关流不会成功写入 

 

 

第二种数组写入

第三种写入

 

第四种写入 

第五种写入 

 

close和flush都可以实现写入,但是close相等于flush我刷新还有个关闭

 节点流和处理流(包装流)

因为BufferedWriter的构造器传进去的是Writer, 也就是说继承了 Writer的子类都可以传进去, 这也是一种设计模式叫修饰器模式

处理流修饰器模式模拟

 

现在上面的FileReader和StringReader相当于节点流, 对单个数据源类别进行读取, 如果我们要扩展怎么扩展呢

将Reader作为一个属性, 同时通过构造器传进来, 因为继承了Reader就可以调用它的方法

现在给Reader_加两个未实现的方法

 在处理流里面, 调用传进来的字节流的方法

在处理流对象中就可以进行调用到字节流的读取

 

扩展:上面是示意写了两个方法, 其实可以统一为read:

其他的对应跟着改, 让他动态绑定去实现 

节点流和处理流的区别

 

BufferedReader使用方法 

 BufferedWriter使用方法 

文本文件拷贝的案例 

字节处理流 

字节处理流视频拷贝使用方法 

对象流

对象流的使用

序列化

 

反序列化

 

对象流的细节 

标准输入输出流 

 

转换流

字节转换为字符

 案例:

目前有一个utf-8的文件,去读取里面文件内容, 可以看到能正确读取

把它转为国标码之后(这个国标码每个国家有自己的国标码, 根据当前系统来看的, 如果当前系统用的是gbk那么国标码就是gbk)

 现在再来读取就会乱码

具体实现

 

InputStreamReader
上面的问题用转换流后得到解决 

 

 OutputStreamWriter

 

字节打印流 

 

 打印到文件

字符打印流

 打印到显示器, 因为传入的是标准输出

输出到指定文件中去 

如果不关流, 文件是进不去的 

 

Properties

传统的方式读取

传统的方法如果我们要获取指的的值,只能自己写判断, 其他的不要 

 用Properties

 

 

 

 

 

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

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

相关文章

WWW24因果论文(1/8) | 利用强化学习(智能体)进行因果问答

【摘要】因果问题询问不同事件或现象之间的因果关系。它们对于各种用例都很重要,包括虚拟助手和搜索引擎。然而,许多当前的因果问答方法无法为其答案提供解释或证据。因此,在本文中,我们旨在使用因果关系图来回答因果问题&#xf…

【Flutter】显式动画

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Flutter学习 🌠 首发时间:2024年5月29日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾 目…

微服务项目搭建之技术选型

1、什么是微服务 Java微服务是一种架构风格,通过将单个Spring Boot应用程序拆分为一组小型、独立的Spring Boot服务来构建分布式系统。每个微服务都运行在自己的进程中,并使用轻量级通信机制(如HTTP或消息队列)来进行相互之间的通…

【C++】从零开始构建红黑树 —— 节点设计,插入函数的处理 ,旋转的设计

送给大家一句话: 日子没劲,就过得特别慢,但凡有那么一点劲,就哗哗的跟瀑布似的拦不住。 – 巫哲 《撒野》 🌋🌋🌋🌋🌋🌋🌋🌋 ⛰️⛰️…

在豆包这事上,字节看得很明白

大数据产业创新服务媒体 ——聚焦数据 改变商业 导语: 1.基于豆包的话炉/猫箱APP市场反响一般 2.价格战对于豆包来说是副产物 3.价格战对大模型市场是良性的 4.豆包接下来会推广至国际社会 因为宣称价格比行业便宜99.3%,豆包成功出圈了。根据火山引擎公…

笔试强训week6

day1 Q1 难度⭐⭐ 小红的口罩_牛客小白月赛41 (nowcoder.com) 题目: 疫情来了,小红网购了 n 个口罩。 众所周知,戴口罩是很不舒服的。小红每个口罩戴一天的初始不舒适度为 ai​。 小红有时候会将口罩重复使用(注:…

【Linux】数据链路层协议+ICMP协议+NAT技术

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:Linux 目录 👉🏻数据链路层👉🏻以太网以太网帧格式网卡Mac地址对比ip地址 👉🏻MTUMTU…

温度传感器安装热套管介绍

热套管(Thermowell)是一段末端封闭的金属管,主要通过焊接、螺纹或法兰连接的方式安装到过程容器或管线上,可保护温度传感器免受流致应力、高压和腐蚀性化学品等严苛工况的影响。此外,热套管使传感器可以轻松方便地拆下…

【管理咨询宝藏116】某大型国有集团公司战略落地保障方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏116】某大型国有集团公司战略落地保障方案 【格式】PDF版本 【关键词】战略落地、大型国企、战略报告 【核心观点】 - 资产规模以提高资产质量、…

项目十三:搜狗——python爬虫实战案例

根据文章项目十二:简单的python基础爬虫训练-CSDN博客的简单应用,这一次来升级我们的技术,那么继续往下看,希望对技术有好运。 还是老样子,按流程走,一条龙服务,嘿嘿。 第一步:导入…

华为诺亚等发布MagicDrive3D:自动驾驶街景中任意视图渲染的可控3D生成

文章链接:https://arxiv.org/pdf/2405.14475 项目链接:https://flymin.github.io/magicdrive3d 虽然可控生成模型在图像和视频方面取得了显著成功,但在自动驾驶等无限场景中,高质量的3D场景生成模型仍然发展不足,主…

Linux网络编程:应用层协议|HTTP

前言: 我们知道OSI模型上层分为应用层、会话层和表示层,我们接下来要讲的是主流的应用层协议HTTP,为什么需要这个协议呢,因为在应用层由于操作系统的不同、开发人员使用的语言类型不同,当我们在传输结构化数据时&…

【全开源】宇鹿家政系统(FastAdmin+ThinkPHP+原生微信小程序)

:助力家政行业数字化升级 一、引言:家政服务的新篇章 随着移动互联网的普及和人们生活水平的提高,家政服务的需求日益增长。为了满足这一市场需求,并推动家政行业的数字化升级,我们特别推出了家政小程序系统源码。这…

excel 点击单元格的内容 跳转到其他sheet设置

如图点击1处跳转到2 按照如下图步骤操作即可

电机控制系列模块解析(25)—— 过压抑制与欠压抑制

一、概念解析 变频器作为一种重要的电机驱动装置,其内置的保护功能对于确保系统安全、稳定运行至关重要。以下是关于变频器过压抑制、欠压抑制(晃电抑制)、发电功率限制、电动功率限制等保护功能的详细说明: 过压抑制 过压抑制是…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 5月29日,星期三

每天一分钟,知晓天下事! 2024年5月29日 星期三 农历四月廿二 1、 首个未成年人游戏退费标准发布:监护人与网游服务提供者将按错担责。 2、 六部门联合印发通知:鼓励加快高清超高清电视机等普及、更新。 3、 神舟十八号航天员乘…

AI播客下载:Acquired podcast每个公司都有一个故事

"Acquired Podcast" 是一档专注于深度解析科技行业和企业发展历程的播客节目,由Ben Gilbert和David Rosenthal主持。其口号是:Every company has a story.《Acquired》每一集都围绕一个特定的主题或公司进行讨论。它以独特的视角和深入的分析&…

Rohm公司参展欧洲PCI盛会

​德国历史悠久的文化名城纽伦堡,即将迎来一场科技盛宴——欧洲PCI展览会。在这个为期三天的盛会中(6月11日至13日),Rohm公司将以璀璨之姿,特别聚焦宽带隙(WBG)设备的璀璨光芒。 此次&#xff0…

气密检测中泄漏率的质量流量与体积流量的转换

对于R-134a等制冷剂,泄漏率通常表示为质量流量(每年的逸出质量)而不是体积流量(特定时间段内给定压力下的逸出质量)。因此,通过制冷剂的年泄漏量来定义泄漏级别,常用的单位为g/a。以某款车型为例…

嵌入式linux系统中NFS文件系统挂载详细实现

大家好,今天主要给大家分享一下,如何利用linux系统实现NFS文件系统挂载的方式与实现。 第一:linux-NFS挂载的目的 1、掌握 Ubuntu 系统 NFS 文件共享服务的安装及配置 2. 掌握嵌入式 Linux 系统通过 NFS 共享服务和 X86 宿主机进行数据共享,文件共享的方法。 …