二十一、输入和输出流的介绍简写I/O

一、到现在为止,我们学到的有变量,数组,对象,对象数组,集合,文件的操作

二、了解输入和输出的概念
当我们在利用程序将文件、RAM内存、键盘输入的东西,获取到的这个过程中, 他会使用到你的系统的InputStream(输入流)
当你在利用程序将一些内容输出到文件RAM、内存、控制台等的时候,这个过程中里面会使用到了系统的 OutputStraeam(输出流)

三、了解使用File类操作文件或者目录

File文件类是在java.io.file包下。
File文件常用的API①long   length();获取文件的大小  单位:字节②boolean   exists();判断文件或者是目录是否存在③Boolean isFile();判断是否是文件④boolean isDirectory();判断是否是文件夹⑤String  getPath(); 获取相对路径⑥String  getAbsolutePath();获取绝地对路径⑦Boolean  delete();删除文件或者可以删除非空的目录⑧Boolean   createNewFile();创建新得文件⑨Boolean  mkdir();创建新的文件夹⑩String  getName();获取文件名,带有扩展名的File类的常用就是上述这些,在以后的需求中你如果用到了可以去自行查阅API文档进行解决list也是File类中的一种常用的方法

四、理解流的概念和分类
流:电流,水流,车流,人流,乃至于我们在计算机中的数据流
流:是代表的一组有序的数据序列,以先进先出的形式进行传递(流动)
按照流的走向:流的走向是相对的,我们一般就是以计算机的程序作为参考对象,来判断是读取还是在写入
1.输入流进行的是 读 这个操作
2.输出流进行的是 写 这个操作
按照处理数据的单元
1.字节流
它可以用来以字节为单位操作数据,一般是用来作为数据传递的时候使用的,字节流可以操作的有普通的文本文件,图片,视频,音频等所有的
2.字符流
他可以操作的是文本,一般用来阅读一些内容‘
字符流可以操作能被Notepad++操作的打开不会出现乱码的内容

五、会使用字节流进行读写文本内容
1.InputStream(File file)–>FileInputStream字节输入流
常用的构造方法:
FileInputStream(File file);
FileInputStream(String path);
常用的方法:
①in read();从输入流中读取一个字节数据
②in read(byte[] b);从输入流中读取字节数组B长度的字节数据,会将读取到的字节数据储存到字节数组中,返回值是真正读取到的总字节数量
③int read(byte[] b,int offset,int length);从输入流中读取指定的索引开始,指定长度的字节数据
④void close();关流
⑤int avaliable();返回可读取到的字节数量
2.OutputStream–>FileOutputStream字节输出流

1.构造方法:(默认情况下,如果文件不存在,输出流会自己创建文件,并且每次都会覆盖文件的内容)
①FileOutputStream(File  file);
②FileOutputStream(String  path);
③FileOutputStream(String  path,boolean  append);可以继续追加数据
2。常用的方法
void  write(int byte);将一个字节写入到输出流中
void writer(byte[] b,int offer,int length);将一个字节数组内指定的所用开始指定长度的字符数据写入输出流中
void close();关流**需求:利用字节流 将d盘下的a.txt  复制到  e盘下的c.txt**
public class Test1 {@SuppressWarnings("resource")public static void main(String[] args) {FileInputStream fis = null;FileOutputStream fos = null;try {// 1.指定数据源fis = new FileInputStream("d:/a.txt");// 2.指定输出目的地fos = new FileOutputStream("e:/c.txt");// byte[] b = new byte[fis.available()];byte[] b = new byte[1024];int len = 0;// 边读边写// 循环读取输入流  每次读取1024个字节数据while((len = fis.read(b)) != -1) {fos.write(b,0,len);}} catch (Exception e) {e.printStackTrace();}finally {// 3.关流try {// 先开的后关if(fos != null) {fos.close();}if(fis != null) {fis.close();}} catch (IOException e) {e.printStackTrace();}}}
}

第三方库。

commons-io

二十二 、I/O流1相关推荐

  1. Android开发笔记(一百二十二)循环器视图RecyclerView

    RecyclerView RecyclerView是Android在support-v7库中新推出控件,中文别名为循环器视图,它的功能非常强大,可分别实现ListView.GridView,以及瀑布流 ...

  2. JAVA基础知识总结:一到二十二全部总结

    >一: 一.软件开发的常识 1.什么是软件? 一系列按照特定顺序组织起来的计算机数据或者指令 常见的软件: 系统软件:Windows\Mac OS \Linux 应用软件:QQ,一系列的播放器( ...

  3. 读后感: 波、波、波---走出软件作坊:三五个人十来条枪 如何成为开发正规军(二十二)

    波.波.波---走出软件作坊:三五个人十来条枪 如何成为开发正规军(二十二) http://blog.csdn.net/david_lv/archive/2008/06/26/2589809.aspx ...

  4. 2021年大数据Hadoop(二十二):MapReduce的自定义分组

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 MapReduce的自定义分组 需求 分析 实现 第一步: ...

  5. 一位中科院自动化所博士毕业论文的致谢:二十二载风雨求学路,他把自己活成了光.........

    4月18日,中国科学院官方微博发布消息,披露了这篇论文为<人机交互式机器翻译方法研究与实现>,作者是2017年毕业于中国科学院大学的工学博士黄国平. 这篇论文中情感真挚的<致谢> ...

  6. iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2)

    iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2) 此时,当用户轻拍按钮后,一个叫tapButton()的方法就会被触发. 注意:以上这一种方式是动作声明和关联一起进行的,还有一种先 ...

  7. 实验二十二 SCVMM中的SQL Server配置文件

    实验二十二 SCVMM中的SQL Server配置文件 在VMM 2012中管理员可以使用 SQL Server 配置文件,在部署完成虚拟机之后,实现 SQL Server 数据库服务自动化部署并交付 ...

  8. 插入DLL和挂接API——Windows核心编程学习手札之二十二

    插入DLL和挂接API --Windows核心编程学习手札之二十二 如下情况,可能要打破进程的界限,访问另一个进程的地址空间: 1)为另一个进程创建的窗口建立子类时: 2)需要调试帮助时,如需要确定另 ...

  9. OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十

    OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...

  10. 读书二十二载,信念很简单,把书念下去,然后走出去,不枉活一世。

    ‍ ‍ 关注+星标公众号,不错过精彩内容 昨天看了一篇关于博士论文的致谢,看的我想哭.改变命运有很多条路,但是对于大多数人而言,读书是改变命运的捷径. 内容是讲述了自己20多年的求学经历:小时候煤油灯 ...

最新文章

  1. 2021年春季学期-信号与系统-第六次作业参考答案-第十一小题
  2. Mint17 FireFox重装英文版问题
  3. 质量兴农战略规划-农业大健康·韩长赋:质量效益和竞争力
  4. MATLAB-2:基础与提高
  5. Linux shell去除字符串中所有空格
  6. Spring(6)---自动装配Beans
  7. oracle deul,C#引用传递
  8. 【iOS-Cocos2d游戏开发之七】添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!...
  9. 开课吧python小课学了有用吗-这个神仙技能,让你为所欲为!速来 !
  10. DOA算法1:MUSIC算法(二)
  11. 客户端的云桌面平台配置与开启(附,登录“云电脑”与切换登录账号)
  12. 深层网络梯度消失-爆炸原因
  13. 步进电机的转矩与功率的换算公式
  14. 格式工厂 vtt字幕 加入视频
  15. 大数据到底应该如何学?
  16. JavaScript的字符串去空格
  17. 网页前端实现五星好评效果
  18. mac最强项目管理工具OmniPlan极速入门
  19. Word表格处理技巧
  20. [Arduino] Arduino猪头笔记

热门文章

  1. XMPP - Socket 实现创建聊天室
  2. 【阿里云云计算工程师 ACP 认证】01、弹性计算 ECS
  3. MySql双主架构原理
  4. python百度地图api经纬度_python3调取百度地图API输出某地点的经纬度信息
  5. 佳明手表大数据应用_最强跑步手表—佳明Forerunner 245功能评测
  6. 工作中的感悟随时分享
  7. oracle connect by用法篇
  8. 【洛谷T7243】【CJOJ2225】【BYVoid S3】珠光宝气阁(潜入辛迪加)
  9. js 中编码(encode)和解码(decode)方法
  10. Confluence 6 修改默认空间标识图片