首页 > 代码库 > io流
io流
IO流
1、IO流:(Input Output)输入输出流: 输入:将文件读到内存中 输出:将文件从内存输出到其他地方。
2、IO技术的作用:主要就是解决设备和设备之间的数据传输问题。比如:硬盘到--->内存。
3、将U盘中的文件拷贝到电脑中:输入流----->读到内存--->通过输出流读到电脑磁盘中。
4、IO的应用场景:
1.打印机到出信息表
2.注册的时候图片的上传
3.下载功能
4.解析XML
5、数据保存到本地,数据一个永久保存。数据保存到磁盘上是以文件的形式存在的。
6、java是如何操作文件:
Java中是通过File文件类来操作文件和文件夹。
7、文件类的构造方法:
File(String pathname)
通过将给定路径名字字符串转换为抽象路径名来创建一个新File实例
File(File parent,String child)
根据parent抽象路径名和child路径名字符串创建一个新File实例
File(String parent,String child)
根据parent路径名字符串和child路径名字符串创建一个新File实例。
8、不同的系统目录的分割线不一样
目录分隔符:在Windows上是“\”,但是Linux系统上的目录分隔符是/
注意点:在Windows上 \ 或者 /都可以作为目录的分隔符。 如果你用的反斜杠 目录分隔符就是\\ 如果使用/ 直接用/就可以分隔
9、exists() 返回一个boolean值类型 该路径下是否存在文件。
Eg:System.out.println("是否存在文件?"+file.exists());
10、获取系统默认的分隔符
System.out.println(File.separator);
11、路径问题:
绝对路径 : 文件在硬盘上的完整路径。绝对路径一般都是以盘符开头 D:\\a.txt 绝对路径
相对路径 : 相对路径就是资源文件相对当前程序所在的路径
12、File中常用的方法:
①创建:
1.CreateNewFile() 在指定位置创建一个空文件,成功就返回true,如果已存在就不创建然后返回false
2.mkdir() 在指定位置创建目录,这只会创建最后一级目录,如果上级目录不存在就抛异常。
3.mkdirs() 在指定位置创建目录,这会创建路径中所有不存在的目录。
4.renameTo(File dest) 重命名文件或文件夹,也可以操作非空的文件夹,文件不同时相当于文件的剪切,剪切时候不能操作非空的文件夹。移动/重命名成功则返回true,失败则返回false。
②删除:
1.delete() 删除文件或一个空文件夹,如果是文件夹且不为空,则不能删除,成功返回true,失败返回false。
2.deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除
13、IO流作用:用于设备和设备之间的数据传输
14、File类的使用:操作文件的属性
15、IO流:用来操作文件的数据
16、IO流的分类:
流按照操作数据的类型分为两种:字节流, 字符流
字节流:读取的是文件的二进制数据,不会对二进制做处理,不会解析成比看得懂的数据
字符流:读取的也是二进制数据,他会将二进制数据转化为我们能过识别的字符(解码),字符流是以字符单位的。字符流=字节流+解码
17、流按照流的方向:输入流和输出流
18、判断流是输出还输入:以当期的应用程序为参考,观察数据是流入还是流出,如果是流入就输入流,如果是流出就是输出流
19、InputStream:此抽象类是表示字节输入流的所有类的超类,抽象的类
20、FileInputStream是InputStream的子类
21、字节输出流:
OutPutStream:他一也是所有字节输出流的超类,也是一个抽象的类,使用子类----------FileOutPutStream 文件输出流
22、FileOutPutStream使用步骤:
1.找到目标文件
2.创建一个通道
3.创建一个字节数组
4.写入数据
5.关闭资源
23、FileOutPutStream使用注意事项:
1.使用FileOutPutStream写数据的时候,如果目标文件不存在,那么字节就会创建一个目标文件对象。(在创建一个通道时创建的文件)
2.使用FileOutPutStream写数据的时候,如果目标文件存在,先将里面的数据清空,再写入数据
3.使用FileOutPutStream写数据的时候,如果文件不存在,想将数据在原有的基础上追加,这个时候就应该使用FileOutputStream(File file,boolean append)构造方法,append如果为true表示可以追加数据,反之不信。
4.使用FileOutPutStream写数据的时候,用write(int a)方法写数据,虽然接受的是int,但是实际上只有一个字节的数据,操作的是低八位的二进制,其他的24位全部丢掉。
io流