当前位置: 首页 > news >正文

io流 知识点+代码实例

 需求 : 如何实现读写文件内部的内容?流 : 数据以先入先出的方式进行流动相当于管道,作用用来传输数据数据源-->流-->目的地流的分类 :流向分 :  以程序为中心输入流输出流操作单元 :字节流 : 万能流字符流 : 只能操作纯文本文件功能分 :节点流 : 真实实现读写的功能流(包装流|处理流) : 加强节点流的功能,提高节点流的性能所有的功能流都需要包裹节点流进行使用所有的分类相辅相成java.io包InputStream : 此抽象类是表示输入字节流的所有类的超类。数据源 : 文件 | 字节数据文件 : FileInputStream字节数据 :  ByteArrayInputStreamOutputStream : 此抽象类是表示输出字节流的所有类的超类。FileInputStream : 文件字节输入流功能分 : 节点流   操作单元分 : 字节流   流向分 : 输入流从文件中读入数据到程序实现步骤 :1.与文件建立联系 File->数据源2.创建文件字节输入流->管道3.读取数据4.使用数据5.关闭资源

读取文件中单个字符 is.read()

public class IO1 {public static void main(String[] args) throws IOException {File src=new File("D://AAA/test.txt");FileInputStream is= new FileInputStream(src);int num1=is.read();System.out.println((char)num1);System.out.println((char)(is.read()));is.close();}
}
/*字节流实现文件拷贝 : *****数据源 --文件字节输入流 --> 程序 --->文件字节输出流--->目的地练习 : 图片拷贝*/
public class Class005_CopyFile {public static void main(String[] args) {//1.与文件建立联系InputStream is = null;OutputStream os = null;try {//2.构建流(输入,输出)is = new FileInputStream("D://AAA/test.txt");os = new FileOutputStream("D:/test.txt");//3.读入写出byte[] car = new byte[1024];int len = -1;while((len=is.read(car))!=-1){os.write(car,0,len);}//4.刷出os.flush();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {//5.关闭(后打开的先关闭)if(os!=null){try {os.close();} catch (IOException e) {e.printStackTrace();}}if(is!=null){try {is.close();} catch (IOException e) {e.printStackTrace();}}}
OutputStream :  此抽象类是表示输出字节流的所有类的超类。
根据目的地选择具体的子类(节点流)文件 : FileOutputStream  ****字节数组 : ByteArrayOutputStreamFileOutputStream : 文件字节输出流使用文件字节输出流将制定的文本内容写出到文件中 :1.与文件建立联系(目的地文件)2.构建文件字节输出流3.准备数据4.写出数据5.刷出6.关闭注意 : 输出流写出数据时,如果源文件存在并且有内容,会默认覆盖,如果想要实现追加,使用重载构造器,boolean append->true追加,false覆盖(默认)如果源文件不存在,会自动到目的地所在路径进行创建如果目的地所在路径不存在,会抛出异常java.io.FileNotFoundException
public class IO2 {public static void main(String[] args) throws IOException {FileOutputStream os=new FileOutputStream("D:/AAA/AAA.txt",true);int i=97;String str="twlw";os.write(i);os.write(str.getBytes());os.flush();os.close();}
}

http://www.lryc.cn/news/34219.html

相关文章:

  • 【MySQL】P8 多表查询(2) - 连接查询 联合查询
  • QML动画(Animator)
  • Git 分支操作【解决分支冲突问题】
  • 盘点全球10大女性技术先驱
  • C++之dynamic_cast
  • JavaScript 箭头函数、函数参数
  • JavaScript_Object.keys() Object.values()
  • 扬帆优配|高送转+高分红+高增长潜力股揭秘
  • 基于transformer的多帧自监督深度估计 Multi-Frame Self-Supervised Depth with Transformers
  • 设计模式: 单例模式
  • idea编辑XML文件出现:Tag name expected报错
  • 第十三届蓝桥杯省赛C++ A组 爬树的甲壳虫(简单概率DP)
  • 手动集成Tencent SDK遇到的坑!!!
  • 三天吃透mybatis面试八股文
  • SpringBoot整合Quartz以及异步调用
  • Golang 中 Slice的分析与使用(含源码)
  • 瀑布开发与敏捷开发的区别,以及从瀑布转型敏捷项目管理的5大注意事项
  • “华为杯”研究生数学建模竞赛2007年-【华为杯】A题:建立食品卫生安全保障体系数学模型及改进模型的若干理论问题(附获奖论文)
  • 基于JavaWeb学生选课系统开发与设计(附源码资料)
  • centos7 oracle19c安装||新建用户|| ORA-01012: not logged on
  • 【算法设计-分治】递归与尾递归
  • HTML 编辑器
  • css盒模型详解
  • 函数模板(template关键字的应用)
  • 嵌入式学习笔记——使用寄存器编程操作GPIO
  • 图像的读取与保存
  • 【蓝桥杯集训·每日一题】AcWing 4074. 铁路与公路
  • 网络:TCP与UDP相关知识(详细)
  • 不好!有敌情,遭到XSS攻击【网络安全篇】
  • Mysql中Explain详解及索引的最佳实践