Java io流学习总结(三)

转载于:https://www.cnblogs.com/ll409546297/p/7197911.html

java.io几种读写文件的方式

一、Java把这些不同来源和目标的数据都统一抽象为数据流。

  Java语言的输入输出功能是十分强大而灵活的。

  在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流。

  这里介绍几种读写文件的方式

二、InputStream、OutputStream(字节流)

     //读取文件(字节流)InputStream in = new FileInputStream("d:\\1.txt");//写入相应的文件OutputStream out = new FileOutputStream("d:\\2.txt");//读取数据//一次性取多少字节byte[] bytes = new byte[2048];//接受读取的内容(n就代表的相关数据,只不过是数字的形式)int n = -1;//循环取出数据while ((n = in.read(bytes,0,bytes.length)) != -1) {//转换成字符串String str = new String(bytes,0,n,"GBK"); #这里可以实现字节到字符串的转换,比较实用System.out.println(str);//写入相关文件out.write(bytes, 0, n);}//关闭流in.close();out.close();

三、BufferedInputStream、BufferedOutputStream(缓存字节流)使用方式和字节流差不多,但是效率更高(推荐使用)

      //读取文件(缓存字节流)BufferedInputStream in = new BufferedInputStream(new FileInputStream("d:\\1.txt"));//写入相应的文件BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("d:\\2.txt"));//读取数据//一次性取多少字节byte[] bytes = new byte[2048];//接受读取的内容(n就代表的相关数据,只不过是数字的形式)int n = -1;//循环取出数据while ((n = in.read(bytes,0,bytes.length)) != -1) {//转换成字符串String str = new String(bytes,0,n,"GBK");System.out.println(str);//写入相关文件out.write(bytes, 0, n);}//清楚缓存out.flush();//关闭流in.close();out.close();

四、InputStreamReader、OutputStreamWriter(字符流,这种方式不建议使用,不能直接字节长度读写)。使用范围用做字符转换

       //读取文件(字节流)InputStreamReader in = new InputStreamReader(new FileInputStream("d:\\1.txt"),"GBK");//写入相应的文件OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("d:\\2.txt"));//读取数据//循环取出数据byte[] bytes = new byte[1024];int len = -1;while ((len = in.read()) != -1) {System.out.println(len);//写入相关文件out.write(len);}//清楚缓存out.flush();//关闭流in.close();out.close();

五、BufferedReader、BufferedWriter(缓存流,提供readLine方法读取一行文本)

     //读取文件(字符流)BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("d:\\1.txt"),"GBK"));#这里主要是涉及中文//BufferedReader in = new BufferedReader(new FileReader("d:\\1.txt")));//写入相应的文件BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:\\2.txt"),"GBK"));//BufferedWriter out = new BufferedWriter(new FileWriter("d:\\2.txt"));//读取数据//循环取出数据String str = null;while ((str = in.readLine()) != null) {System.out.println(str);//写入相关文件out.write(str);out.newLine();}//清楚缓存out.flush();//关闭流in.close();out.close();

六、Reader、PrintWriter(PrintWriter这个很好用,在写数据的同事可以格式化)

     //读取文件(字节流)Reader in = new InputStreamReader(new FileInputStream("d:\\1.txt"),"GBK");//写入相应的文件PrintWriter out = new PrintWriter(new FileWriter("d:\\2.txt"));//读取数据//循环取出数据byte[] bytes = new byte[1024];int len = -1;while ((len = in.read()) != -1) {System.out.println(len);//写入相关文件out.write(len);}//清楚缓存out.flush();//关闭流in.close();out.close();

七、基本的几种用法就这么多,当然每一个读写的使用都是可以分开的。为了更好的来使用io。流里面的读写,建议使用BufferedInputStream、BufferedOutputStream

转载于:https://www.cnblogs.com/SongG-blogs/p/10932086.html

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

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

相关文章

现在流行的画原型图工具_原型资源图:8种流行原型工具的综合指南

现在流行的画原型图工具Although tools are not the most important things to learn as a UX designer, inevitably you need to use it in order to achieve your more important goals, to solve user’s problems. This article covers today’s 8 popular UX prototyping …

持续5个月,200+笔记,3千多人参与,邀请你来学源码~

注意:本文点击文末阅读原文可查看文中所有链接。我正在参加掘金年度人气作者投票活动,大家有空可以加微信群帮忙投票,感谢大家!想起今天还没发文,就开放下微信群二维码,大家扫码进群读源码和帮忙投票吧。群…

自己动手开发调试器 01

背景: 在做XXX编译器检证时经常需要区分是代码端错误,还是编译器端错误,因此对代码进行调试是必不可少的。但是狗日的甲方并没有提供对应的调试器XXXDB,而用GDB调试XXX生成的可执行程序很不稳定,经常出现异常,干脆…

02如何抓住重点,系统高效地学习数据结构与算法?

以下内容总结自极客时间王争大佬的《数据结构与算法之美》课程,本文章仅供个人学习总结。 什么是数据结构?什么是算法? 从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。 类比图书馆的书籍,我们如果想找一本书可…

第2年,倒数第3天,1.5万票,感动!

1源码共读大家好,我是若川。众所周知。从8月份开始,我组织了源码共读活动,至今已经有5个月了,每周一期,进行到了第18期。每周坚持写源码解读文章,每天坚持答疑解惑,帮助了很多人学会看源码&…

启发式搜索给神经网络_神经科学如何支持UX启发式

启发式搜索给神经网络重点 (Top highlight)Interaction and UX designers have long known and used heuristics to guide the creation of a user-friendly interface. We know empirically that these principles work, and they make “common sense”. These heuristics th…

Django实战(1):需求分析和设计

Depot是《Agile Web Development with Rails》中的一个购物车应用。 该书中用多次迭代的方法,逐步实现购物车应用,使很多人走上了rails开发的道路。 遗憾的是Django世界中好像没有类似的指引,也许是因为pythoner 不需要具体的例子。 但是如果…

使用 apiDoc 为你的Node.js API 生成文档

翻译: 疯狂的技术宅 原文:jonathas.com/documenting… 未经许可,禁止转载! 当你为其他开发人员(前端,桌面,移动等)开发 API 时,需要生成一份风格良好的文档,以…

海浪 shader_海浪下的发现

海浪 shaderI’ve been playing Subnautica for over 25 hours now, and likely have at least that many more to go. The game puts you in the shoes of a crew member on the Aurora, a spaceship that suffers a catastrophic incident and plummets to the largely ocean…

最后一天,特邀小姐姐配音拉票,今日可投28票

1源码共读大家好,我是若川。最后一天,特邀小姐姐配音拉票,超级好听。众所周知。从8月份开始,我组织了源码共读活动,至今已经有5个月了,每周一期,进行到了第18期。每周坚持写源码解读文章&#x…

NET中使用Memcached的相关资源整理

本文转自:http://www.cnblogs.com/dudu/archive/2009/07/19/1526407.html Memcached官方站点:http://www.danga.com/memcached / Memcached Win32 1.2.6下载:http://code.jellycan.com/memcached/ 安装帮助:Windows下的.NET Memca…

FFMPEG 视频图像解封装解码

FFMPEG4.0 音频解码解封装FFMPEG 音频封装编码 下面的函数方法基于最新的FFMPEG 4.0(4.X):本文讲是如何从一个视频文件中提取出其中的图像数据,并将图像数据保存到文件中。 解码解封装的过程与音频差不多,具体如下&…

对数据可视化的理解_使数据可视化更容易理解

对数据可视化的理解Data is weaving its way into almost all aspects of our lives since the past decade. Our ability to store more information in smaller and smaller spaces has encouraged us to make sure we leave no information out. The ease of collecting inf…

面试官:项目中常用的 .env 文件原理是什么?如何实现?

1. 前言大家好,我是若川。持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。本文仓库 h…

语言分类,我接触和我想学习的

本文信息和数据出自hyperpolyglot,将当前主流编程语言分为11个大类,分别为:解释型(PHP,Perl,Python,Ruby,Tcl,Lua,JavaScript,Io)、操作系统自动化型(POSIX Shell,AppleScript,PowerShell)、C风格(C,Objective C,Java,C#)、Pascal风格(Pascal…

梯度下降法和随机梯度下降法

1. 梯度 在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)或者▽f(x,y)。对于在点(x…

一张图看程序媛阿源的2021个人年度流水账

大家好,我是若川。持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。本文来自读者阿源小…

案例研究:设计与方法_如何进行1小时的重新设计(案例研究)

案例研究:设计与方法速度设计简介 (Intro to Speed Designing) I’ve been an advocate of speed redesigning technique for a while. The idea is simple — decrease the hand-eye lag and make super quick decisions, seemingly without thinking. The logic behind it is…

图文并茂重新认识下递归

大家好,我是若川。持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。对于大部分前端(包…

《C和指针》读书笔记

看过了经典的K&R C,又看了这本Pointers on C,温习了C语言的基本语法。 在重温过程中,感觉需要重点把握的知识是指针、结构和动态内存分配。 这对今后的算法和操作系统方面的研究学习很有帮助。 3.2.3 声明指针int* b, c, d;本以为这条语句…