• java中所谓流通俗来讲就是数据源的传输,我们的文件,视屏,对象都可以叫做数据源,io将他们那转换为可以在不同程序中传输的数据,众所周知电脑存储是二进制,而处理时常遇到字节和字符的写入和写出,分别以8位或者16位二进制表示,

    类别 基类 常用类
    字节流的读写 InputStream和OutputStream

    BufferInputStream、BufferOutputStream

    FileInputStream、

    FileOutputStream

    字符流的读写 Reader和Writer

    BUfferReader

    BufferWriter

    转换流

    InputStreamReader :字节转换成字符的一个输入流,最后,以字符方式读取数据。

    OutputStreamWriter :字符转换成字节的一个输出流,最后,以字节方式输出数据。

  • 我们先来看文件,文件就是电脑中存储的音频,视屏,图片,文本文件等等,java中用File表示文件,下面程序表示过滤出隐藏文件

  File[] files = new File(".").listFiles(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {return dir.isHidden();}});
//简写后形式如下File[] files1 = new File(".").listFiles(File::isHidden);
//File的重要方法File file = new File("src/main/resources/ss.txt");file.mkdir();//父路径必须存在否则报错file.mkdirs();//父路径不存在则创建file.exists();//判断是文件否存在

字节的输入输出实例,记住要关闭流,这里用了java7以后语法不用显示的关闭流的方式

//放入try语句中之后会自动关闭流try( FileInputStream fileInputStream =new FileInputStream(new File("src/main/resources/data.csv"));FileOutputStream fileOutputStream  = new FileOutputStream(new File("src/main/resources/data1.csv"))) {int len=0;byte[] chars =new byte[1024];//一次读1024字节,写1024字节while((len=fileInputStream.read(chars))!=-1){System.out.println(new String(chars,0,len));fileOutputStream.write(chars,0,len);}}catch (Exception E){E.printStackTrace();}//带缓冲的字节输入输出流,能提高效率,用的是包装设计模式,FileOutputStream的第二个参数为true时将会在之前文件中添加而不是覆盖try(BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("."));BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(".",true))){int len=0;byte[] chars =new byte[1024];while((len=bufferedInputStream.read(chars))!=-1){bufferedOutputStream.write(chars,0,len);}}catch (Exception e){e.printStackTrace();}
  • 字符的输入输出实例
        //BufferedReader字符输入缓冲,BufferedWriter字符输出缓冲try(BufferedReader bufferedReader = new BufferedReader(new FileReader("."));BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("."))){int len=0;char[] chars =new char[1024];while((len=bufferedReader.read(chars))!=-1){//  bufferedReader.readLine();BufferedReader特有方法,读一行数据bufferedWriter.write(chars,0,len);bufferedWriter.newLine();//BufferedWriter特有方法换行}}catch (Exception e){e.printStackTrace();}

转换实例

//这里我们也用缓冲字符输出和输入类进行包装,提高转换效率try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream("src/main/resources/data.csv")));BufferedWriter bufferedWriter1 = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("src/main/resources/data1.csv", true)));) {int len = 0;while (len != -1) {char[] arr = new char[1024];if ((len = bufferedReader.read(arr)) != -1) {bufferedWriter1.newLine();bufferedWriter1.write(arr, 0, len);}}} catch (Exception e) {e.printStackTrace();}
  • 当然也可以设置输入输出的编码

    new InputStreamReader(new FileInputStream(new File("e:/123.doc")),"utf-8");
    new OutputStreamWriter(new FileOutputStream(new File("e:/456.doc")),"utf-8");

java中io流,Reader和Writer,InputStream和OutputStream,转换流 InputStreamReader 和 OutputStreamWriter相关推荐

  1. java中IO流详解

    不断更新中!!! 1.流的定义及分类 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输操作都是以"流"的方式进行.设备可以是文件,网络,内存等.将数据从 ...

  2. Java的IO操作(五) - PrintStream类、字符流、Reader和Writer、带缓冲的字符流BufferedReader和BufferedWriter...

    1. PrintStream类 我们都知道,int类型在Java中占4个字节,如1在内存中表示为 00000000 00000000 00000000 00000001.如果我们直接使用OutputS ...

  3. Java中IO流的总结

    有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...

  4. java中io流是类吗_Java中的IO流

    今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...

  5. Java中IO流体系

    转载: https://mp.weixin.qq.com/s?__biz=MzA5NzgzODI5NA==&mid=2454030958&idx=1&sn=df27aadb92 ...

  6. java 中 IO 的流的种类及BIO、NIO、AIO 有什么区别?

    文章目录 java 中 IO 流分为几种? BIO.NIO.AIO 有什么区别? java 中 IO 流分为几种? (1)按流划分,可以分为输入流和输出流: (2)按单位划分,可以分为字节流和字符流: ...

  7. Java中IO流,输入输出流概述与总结(转载自别先生文章)

    Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...

  8. java中IO流体系以及常用实现类

    一.体系   分为字节流和字符流,也可以说是分为输入流和输出流.字节流InputStream,OutputStream以字节形式操作二进制文件非常合适.字符流Writer和Reader操作文本比较适宜 ...

  9. 【Java网络编程与IO流】Java中IO流分为几种?字符流、字节流、缓冲流、输入流、输出流、节点流、处理流

    Java网络编程与IO流目录: [Java网络编程与IO流]Java中IO流分为几种?字符流.字节流.缓冲流.输入流.输出流.节点流.处理流 [Java网络编程与IO流]计算机网络常见面试题高频核心考 ...

最新文章

  1. 2021年大数据Flink(四十四):​​​​​​扩展阅读 End-to-End Exactly-Once
  2. ubantu中的mysql命令
  3. 如何设计好词袋模型BoW模型的类类型
  4. sshpass命令使用
  5. github的基础使用
  6. Android之Windows下搭建React Native Android开发环境(差不多搞了一天)
  7. 牛客网【每日一题】5月19日题目精讲 比赛
  8. Linux命令之感叹号 !
  9. 检测与跟踪:快速视频姿态估计
  10. D. Little Artem and Dance
  11. 腾讯PHP工程师面试题两份
  12. linux中设备配额 磁盘加密
  13. 2012-11-25 3 00 发喜讯,终于把S5pv210 VGA 分辨率提升到1440 x 900/1920 x 1
  14. 科隆国际游戏展:戴尔与ALIENWARE展示创新电竞产品
  15. 扩展卡尔曼滤波EKF进行锂电池SOC估计的C语言版本实现,和matlab版本一样包含定参和FFRLS两种情况
  16. 判断网卡MAC地址前缀
  17. Python笔记17-Dma指标算法
  18. DELPHI 旧控件安装到 DELPHI11 新版环境的操作
  19. jenkins API 使用postman调用
  20. 纯CSS3实现常见多种相册效果

热门文章

  1. Python之strip详解
  2. AcWing 135. 最大子序和(单调队列优化 dp)
  3. 关于打破思维的墙读后感
  4. type-c速度测试软件,速度篇—Type-C/USB3.0接口到底谁快_固态硬盘评测-中关村在线...
  5. python识别音乐歌曲_如何轻松识别您正在听的歌曲
  6. jquery 如何使用innerHTML
  7. 织梦DedeCMS管理员动态密码登录插件下载
  8. java支付宝当面付接口_支付宝当面付秘钥生成教程(加对接案例)
  9. java编程APP_用java编程的软件叫什么?
  10. 配置secureCRT