Java 的I/O流

什么是流

1.流是一种对于文件的读与写的操作

  • 流是有顺序的,流的数据是有顺序的
  • 先进先出
  • 流可以控制数据的流动的方向

流的分类

  • 根据流动方向:输入流 输出流
  • 根据单位: 字节流 字符流
  • 根据功能; 节点流 高级流(处理流)
  • 封装了一些类
  • ***流的基类
  •            输入流                   输出流
    
  • 字节流 InputStream OutputStream
  • 字符流 Reader Writer
    读取数据 写数据的

InputStream
此抽象类是表示字节输入流的所有类的超类 该流可以读取任意的文件:图片文件 视频文件 音频文件 .txt

public class IoTest {public static void main(String[] args) throws IOException {//文件的路径必须是存在改文件的,创建文件成功,代表流已经开始InputStream inputStream= new FileInputStream("a.txt");//读取//show1();byte[] buf=new byte[1024];int len=0;while((len=inputStream.read(buf))!=-1) {//将数据读取到数组中,并且返回读取的个数,存储到len中,并且判断是否达到结尾System.out.println(new String(buf,0,len)+"读取出来啦 ");}inputStream.close();}
public static void show1() throws IOException {InputStream inputStream= new FileInputStream("a.txt");int data=0;while((data=inputStream.read())!=-1) {System.out.print((char)data+" ");}inputStream.close();
}
}

**OutputStream **
此抽象类是表示输出字节流的所有类的超类 用来将流中的数据写到文件中去,任意文件

public class IoTest1 {public static void main(String[] args) throws IOException {OutputStream outputStream=new FileOutputStream("c.txt");outputStream.write(97);outputStream.write(98);byte[] bs="hello".getBytes();outputStream.write(bs);outputStream.close();}
}

经典案例

 如何将 将一个a.txt文件,剪切到d:\\test\\a.txt中
public class IoTest2 {public static void main(String[] args) throws IOException {File file=new File("a.txt");InputStream reader=new FileInputStream(file);//写的方法可以直接在里面文件OutputStream writer=new FileOutputStream("D:\\test2\\a.txt");byte[] buf=new byte[1024];int len=0;while((len=reader.read())!=-1) {writer.write(buf,0,len);}reader.close();writer.close();file.delete();}
}

如何快速的了解java的I/O流,由浅到深相关推荐

  1. 浅入深出之Java集合框架(上)

    Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到浅入深出之Java集合框架(下). ...

  2. 浅入深出之Java集合框架(中)

    Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到浅入深出之Java集合框架(下). ...

  3. 对象数组快速掌拨 java 0913

    对象数组快速掌拨 java 0913 视频 https://www.ixigua.com/6871892334255014413?logTag=r6u2cq3d6rgheoFkHT3y_ 什么是对象数 ...

  4. 如何快速查找下载java项目所需jar包

    如何快速查找下载java项目所需jar包? JAVA开发过程中,有时需要查找一些jar包,有什么方法可以快速的查找并下载到项目所需jar包? ------------有效建议1------------ ...

  5. java fields是_一个快速生成R2.java中fields的插件

    一个快速生成R2.java中fields的插件 项目地址:github.com/JeasonWong/- 介绍 在子 module 中使用 ButterKnife 时,如果想使用 ButterKnif ...

  6. 算法基础、算法比赛快速入门(java)

    想用Java快速入门算法?这篇文章你得看! 提示:本文章适合想要入门算法,并且想 "快速" 达到一定成果的同学们阅读~ 文章非常非常非常长(可能是你见过最长的算法基础篇章)!!! ...

  7. 幂运算(快速幂)Java实现

    幂运算(快速幂)Java实现 暴力幂运算 Math类下的pow(double a, double b) 快速幂(涉及位运算) 测试 暴力幂运算 public static long pow1(int ...

  8. ubuntu18安装oracle11g,在Ubuntu 18.04系统下快速安装Oracle Java 11的方法

    本文介绍在Ubuntu 18.04操作系统下使用PPA快速安装Oracle Java 11的方法,同时也可以用在Ubuntu 18.10.Ubuntu 16.04.Ubuntu 14.04版本中. O ...

  9. 方正ES2007快速开发平台 Java版本

    方正ES2007快速开发平台 Java版本 [基本介绍] 1.ES2007介绍 方正飞鸿智能信息平台(Fix ES2007)是方正集团推出的国内领先企业基础架构中间件平台.Fix ES2007平台基于 ...

最新文章

  1. Unity基础之:UnityAPI的学习
  2. 深度学习笔记(22) Padding
  3. html右边距无法调整,**css+html为什么右侧菜单的字体大小和边距设置在失效?谁能看下*...
  4. 使用wireshark分析HTTPS流程的建立
  5. SpringMVC,3种不同的URL路由配置方法 [转]
  6. linux下mysql,linux下mysql的装配
  7. html特殊乘转义字符,HTML特殊转义字符列表
  8. SpringMVC 工作原理
  9. 维宏控制卡win7 驱动_维宏雕刻机控制卡驱动
  10. 大学计算机网络实验网线制作,计算机网络实验报告 网线的制作.doc
  11. cad卸载_CAD一键卸载工具
  12. Git 笔记 - git rebase
  13. win下安装mmcv的一些报错
  14. Prevent Your Acne With Your Diet
  15. 安装程序时出现2502 2503错误解决方法
  16. 第 35 届信息学奥林匹克竞赛(NOI 2018)二试赛题
  17. 手把手教你安装WordPress详细教程(图文)
  18. z-index 无效解决方法
  19. python带你采集不可言说网站数据,并带你多重骚操作~
  20. ERP期末复习知识点

热门文章

  1. leetcode 151 python
  2. linux打印JAVA日志命令_Linux下查看日志用到的常用命令
  3. C++ STL map集合的使用
  4. 計算機二級-java10
  5. jsp是在html里面嵌入哪种代码?_再说嵌入式入门
  6. 资源放送丨《高并发Oracle OLTP系统的故障案例分享》PPT视频
  7. 本周三、四两场直播丨达梦 vs. Oracle,从快速入门到性能分析优化
  8. 圆你国产数据库DBA之梦,达梦DCA培训考试券免费拿
  9. 2019年12月数据库流行度排行:前三甲高位收官 数据库重获增长趋势
  10. 对话华为云专家,摆脱无意义“内卷”