首页 > 技术文章 > IO流

FeiFei2002 2021-12-07 19:47 原文

IO流
文件:文件就是用来保存数据的地方,文件是放在磁盘上的
文件流:
流:数据在数据源(文件)和程序(内存)之间经历的路径
流的分类:1.按照操作数据单位不同分为:字节流:一般用在二进制的文件和字符流:一般用在文本文件
2.按照数据流的流向不同分为输出流和输入流
3.按照流的角色不同分为节点流和处理流,处理流也被称为包装流
字节流:分为字节输入流,字节输出流对应的顶级父级是inputStream和outputStream
字符流:分为字符输入流,字符输出流对应的顶级父级是Reader和Writer

输入流:数据从数据源(文件)到程序(内存)之间经历的路径
输出流:数据从程序(内存)到数据源(文件)的路径
IO流原理:1.IO是input和output的缩写,IO是非常使用的技术,用于处理数据传输,如读文件写文件网络通信等
2.java程序中对于数据的输入和输出操作以流(stream)的方式进行
3.Java.io包下提供各种"流"类的操作和接口用于获取不同种类的数据并且并通过方法输入或者输出数据
创建文件的三种方式:1.//方式一 new File (String pathname)//根据路径创建一个File对象
2.//方式二 new File(File parent,String child)//根据父目录文件+子路径构建
3. //方式三: new File(String parent,String child)//根据父目录文件+子路径构建
代码在demo.Demo
常用的文件操作
获取文件的相关信息:getName:获取文件的名字 getAbsolutePath 获取绝对路径 getParent 获取父级目录 length 获取文件的大小(文件有多少个字节)
exists 这个文件是否存在 isFile 是不是一个文件 is Directory 是不是一个目录
目录的操作和文件的删除:
mkdir创建一级目录,mkdirs创建多级目录,delete删除空目录或者文件
常用的文件方法:read():读取文件如果返回-1表示文件读取完毕
write():在文件中添加数据,单独使用时传输单个字节效率不高
write(s.getBytes()):s是创建的字符串可以传输多个字符
write(s.getBytes()),在这后面可以添加两个参数第一个是起始输入第二个是结束输入的下标
new FileOutputStream(File ):这种方式会覆盖上一个文件的内容
new FileOutputStream(File,true):这种方式则不会覆盖上一个文件的内容也就是追加
文件的拷贝:思路:在完成程序的时候应该是读取部分数据就写入到指定的程序(这里是循环使用的)
节点流:节点流可以从一个特定的数据源读写数据
处理流(也叫包装流):连接已经存在的流在节点流之上为程序提供更强大的读写功能
节点流和处理流的区别:
1.节点流是底层流/低级流直接跟数据源连接
2.处理流包装流,既可以消除不同的节点流的实现差异,也可以提供更方便的方法来输入输出
3.处理流也叫包装流;是对节点流进行包装使用修饰器设计模式不会直接与数据源相连
处理流的主要功能体验在一下两个方面:
1.性能的提高:主要以缓冲的方法来提高输入输出的效率
2.操作的便捷:处理流可能提供了一系列便捷的方法一次输入输出大批量的数据,使用更加灵活方便
标准输入和标准输出System.in标准输入System.out标准输入

推荐阅读