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 字节流和字符流相关推荐

  1. 【Java基础】吃透Java IO:字节流、字符流、缓冲流

    文章目录 [Java基础-3]吃透Java IO:字节流.字符流.缓冲流 一.初识java IO 1.1 IO流分类 1.1.1 输入流与输出流 1.1.2 字节流与字符流 1.1.3 节点流和处理流 ...

  2. java byte char io流_吃透Java IO:字节流、字符流、缓冲流

    前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...

  3. java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝

    接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...

  4. 吃透Java IO:字节流、字符流、缓冲流

    IO流是Java中的一个重要构成部分,也是我们经常打交道的. 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握得很好,可以立即关闭文章.反之,你可以在后面得文章中寻找答案. ...

  5. java字符流字节流场景_【120期】Java IO:字节流、字符流、缓冲流

    IO流是Java中的一个重要构成部分,也是我们经常打交道的.这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!) 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握 ...

  6. fileoutputstream 字节乱码_吃透Java IO:字节流、字符流、缓冲流

    前言 有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身 ...

  7. Stoker的Java学习之字节流与字符流

    Java学习之字节流与字符流 一. 字节流 字节流是在java.io包中操作文件内容的一大类,字节流将文字图片音频等文件转换成字节,进行数据传输. 在字节流中输出数据主要是使用OutputStream ...

  8. Java IO 3-字节流与字符流的区别

    java以流的形式操纵IO,又将流分为两种:字节流与字符流,对JavaIO流操作不清楚的可以参考 Java IO 2-字节流与字符流 那字节流与字符流之间又有什么区别呢 区别 字节流用于操作文件数据, ...

  9. Java学习之字节流和字符流的转化

    Java学习之字节流和字符流的转化 1.字节流转换成字符流 输入字节流转为字符流需要用到InputStreamReader的构造方法: InputStreamReader(InputStream in ...

  10. Java基础(二十七)Java IO(4)字符流(Character Stream)

    字符流用于处理字符数据的读取和写入,它以字符为单位. 一.Reader类与Writer类 1.Reader类是所有字符输入流的父类,它定义了操作字符输入流的各种方法. 2.Writer类是所有字符输出 ...

最新文章

  1. 用visio画用例图小人_教你如何用 Python 打飞机 ?
  2. 如何从KDE中切換到openSUSE的GNOME桌面环境
  3. 强化学习gym库中的Pendulum-v1/CartPole-v1游戏介绍
  4. duilib消息事件产生和分发解释
  5. 部署war包后,新增tomcat服务器,启动tomcat服务器报错解决方法
  6. codeforces 414C C. Mashmokh and Reverse Operation(归并排序求逆序对)
  7. 那些不需要你知道的Chrome DevTool - 使用技巧篇
  8. 浮窗 动画特效 android,悬浮窗能实现自定Animation动画效果吗?
  9. 【更新】PDF控件Spire.PDF V3.9.463发布 | 修复多个PDF转换bug
  10. JavaScript开发者应懂的33个概念js-33-concepts
  11. 广告投放的相关名词CPM/CPT/CPC/CPD/CPI/CPS
  12. 数字化的下一个目标,就是产业链|数字思考者50人
  13. NLP-对话聊天机器人
  14. 车载、行车记录仪产品知识汇集
  15. CST入门——求解器简介与时域、频域和积分求解器设置
  16. nodejs读取服务器json文件,nodejs读写json文件的简单方法(必看)
  17. go语言 第三方包安装方法_安装第三方软件到电视的方法,看直播应该下载什么软件?...
  18. 360手机刷机: N5、N5S、N6、N6Lite、N6PRO、N7、N7Lite、N7PRO、Q5、Q5Plus
  19. 《颠覆者 周鸿伟自传》阅读笔记
  20. javaScript替换函数

热门文章

  1. windows10-seaslog安装笔记
  2. 推荐一款弹出窗口插件 lhgdialog 4.2.0 正式版
  3. 刷新后保持大分类和小分类的展开状态
  4. Find Backpacker Jobs in Australia
  5. double类型的数值转为小数点2位
  6. Django Mysql数据库-聚合查询与分组查询
  7. git branch 分支管理
  8. jQuery实现高亮显示网页关键词的方法
  9. asp.net 母版页使用详解--转
  10. iPhone开发之修改UINavigation Bar背景图片