Java IO-03 字节流和字符流
Java IO-03 字节流和字符流
1 InputStream 和 Reader
InputSteam和Reader是所有输入流的抽象基类,其本身并不能创建实例,而是作为所有输入流的模板。InputStream三个基本方法
- int read():从输入流读取单个字节
- int read(byte[] b):从输入流最多读取b.length个字节的数据,并将其存储到b的数组中,返回实际读取的字节数。
- int read(byte[] b,int off,int len):从输入流读取最多len个字节的数组,并将其保存到b的数组中,放入数组时,并不是从数组的起点开始,二是从off的位置开始,返回实际读取的字节数。
Reader中也包含以下三个方法
- int read():从输入流读取单个字符,返回所读取的字符数据。
- int read(char[] c):从输入流最多读取c.length个字符的数据,并将其存储在字符数组c中,返回实际读取的字符数。
- int read(char[] c,int off,int len):从输入流中最对读取len个字符的数据,并将其存储在字符数组c中,放入数组c是,并不是从数组起点开始的,二是从off位置开始,返回实际读取的字符数。
Java 7 之后改写了所有的IO资源,他们都实现了 AutoClosable 接口,因此都可以通过自动关闭资源的try语句来关闭这些 IO 流。
/*** 读取文件*/private void readFile() throws IOException {FileInputStream fis = null;try {//1、初始化输入流对象fis = new FileInputStream("C:\\Temp\\RandomAccessFileDemo.txt");//2、返回这个输入流中可以被读的剩下的bytes字节的估计值int size = fis.available();System.out.println("字节长度:" + size);//3、根据输入流的字节长度长度创建字节数组byte[] arr = new byte[size];//4、把数据读取到数组中fis.read(arr);//5、将数组中的字符转换为字符串String result = new String(arr);System.out.println(result);} catch (Exception ex) {System.out.println(ex);} finally {//6、关闭输入流对象if (null != fis) {fis.close();}}}
2 OutputStream 和 Writer
Output 和 Writer 也非常相似,两个流都提供了如下三个方法:
- void write(int c); 将指定的字节/字符输出到输出流中,其中c既可以代表字节,也可以代表字符。
- void write(byte[]/char[] buf); 将字节/字符数组中的数据输出到指定的输出流中。
- void write(byte[]/char[] buf,int off,int len); 将字节/字符数组从off位置开始,长度为len的字节/字符输出到输出流中。
其中Writer还包含了一下两个方法:
- void write(String str); 将str字符串里包含的字符输出到指定的输出流中。
- void write(String str, int off, int len); 将 str 字符串从 off 的位置开始,长度为 len 的字符输出到指定输出流中。
public static void write() {String strFilePath = String.format("C:%sTemp%swriter.txt", File.separator, File.separator);try {FileWriter writer = new FileWriter(strFilePath, true);writer.write(new Date().toString());//刷新writer.flush();//关闭文件流writer.close();} catch (IOException e) {e.printStackTrace();}
转载于:https://www.cnblogs.com/taony/p/9523329.html
Java IO-03 字节流和字符流相关推荐
- 【Java基础】吃透Java IO:字节流、字符流、缓冲流
文章目录 [Java基础-3]吃透Java IO:字节流.字符流.缓冲流 一.初识java IO 1.1 IO流分类 1.1.1 输入流与输出流 1.1.2 字节流与字符流 1.1.3 节点流和处理流 ...
- java byte char io流_吃透Java IO:字节流、字符流、缓冲流
前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...
- 吃透Java IO:字节流、字符流、缓冲流
IO流是Java中的一个重要构成部分,也是我们经常打交道的. 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握得很好,可以立即关闭文章.反之,你可以在后面得文章中寻找答案. ...
- java字符流字节流场景_【120期】Java IO:字节流、字符流、缓冲流
IO流是Java中的一个重要构成部分,也是我们经常打交道的.这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!) 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握 ...
- fileoutputstream 字节乱码_吃透Java IO:字节流、字符流、缓冲流
前言 有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身 ...
- Stoker的Java学习之字节流与字符流
Java学习之字节流与字符流 一. 字节流 字节流是在java.io包中操作文件内容的一大类,字节流将文字图片音频等文件转换成字节,进行数据传输. 在字节流中输出数据主要是使用OutputStream ...
- Java IO 3-字节流与字符流的区别
java以流的形式操纵IO,又将流分为两种:字节流与字符流,对JavaIO流操作不清楚的可以参考 Java IO 2-字节流与字符流 那字节流与字符流之间又有什么区别呢 区别 字节流用于操作文件数据, ...
- Java学习之字节流和字符流的转化
Java学习之字节流和字符流的转化 1.字节流转换成字符流 输入字节流转为字符流需要用到InputStreamReader的构造方法: InputStreamReader(InputStream in ...
- Java基础(二十七)Java IO(4)字符流(Character Stream)
字符流用于处理字符数据的读取和写入,它以字符为单位. 一.Reader类与Writer类 1.Reader类是所有字符输入流的父类,它定义了操作字符输入流的各种方法. 2.Writer类是所有字符输出 ...
最新文章
- 用visio画用例图小人_教你如何用 Python 打飞机 ?
- 如何从KDE中切換到openSUSE的GNOME桌面环境
- 强化学习gym库中的Pendulum-v1/CartPole-v1游戏介绍
- duilib消息事件产生和分发解释
- 部署war包后,新增tomcat服务器,启动tomcat服务器报错解决方法
- codeforces 414C C. Mashmokh and Reverse Operation(归并排序求逆序对)
- 那些不需要你知道的Chrome DevTool - 使用技巧篇
- 浮窗 动画特效 android,悬浮窗能实现自定Animation动画效果吗?
- 【更新】PDF控件Spire.PDF V3.9.463发布 | 修复多个PDF转换bug
- JavaScript开发者应懂的33个概念js-33-concepts
- 广告投放的相关名词CPM/CPT/CPC/CPD/CPI/CPS
- 数字化的下一个目标,就是产业链|数字思考者50人
- NLP-对话聊天机器人
- 车载、行车记录仪产品知识汇集
- CST入门——求解器简介与时域、频域和积分求解器设置
- nodejs读取服务器json文件,nodejs读写json文件的简单方法(必看)
- go语言 第三方包安装方法_安装第三方软件到电视的方法,看直播应该下载什么软件?...
- 360手机刷机: N5、N5S、N6、N6Lite、N6PRO、N7、N7Lite、N7PRO、Q5、Q5Plus
- 《颠覆者 周鸿伟自传》阅读笔记
- javaScript替换函数