Java中IO流(2)

大家好,今天给大家带来IO流第二段~

3.FileInputStream
读的改进:一个一个读太浪费时间和资源,交互太频繁,所以:
int  read(byte【】 b) 
    一次最多读取b.length个字节
   减少硬盘和内存的交互,提高程序的执行效率
   往byte【】 数组中读
4.文件的地址可以写绝对路径和相对路径
相对路径一定是从当前位置作为起点开始找
IDEA默认的当前路径是:工程Project的根就是IDEA默认的当前路径 :C:\Users\许原风\IdeaProjects\test01当前的自定义的文件的第一个下面
5.s.read()读取下一个数值 
  s.read(arr)读取到的字节数量(需要有byte数组)
6.int  avai()返回流当中剩余的没有读到的字节数量
long   skip(long  n)跳过几个字节不读
7.byte[] arr=new byte[s.available()];这种方式不适合太大的文件,因为byte【】数组不能太大
9.15
FileInputStream(把文件中的内容也就是硬盘中的内容读出来,读到内存中)
1.FileOutputStream(就是在代码中写个东西然后把它写入一个文件中,就是从内存写入文件中!)文件字节输出流,负责写,从内存到硬盘
2.s=new FileOutputStream("text001/Collection Map/src/test");//(里面的文件不存在的时候会自动新建)这种方法会把文件原来的内容清空,谨慎使用
s=new FileOutputStream("text001/Collection Map/src/test.txt",true);//追加不会清空,会在原文件内容后面写入
一定要写s.flush()
3.文件复制
使用FileInputStream+FileOutputStream完成文件的的拷贝
拷贝的过程应该是一边读,一边写。
使用以上的字节流拷贝文件的时候,文件类型随意,万能的,什么样的文件都可拷贝
举例:将D盘文件拷贝到C盘:先从D盘读入到内存中,再从内存写入到C盘
4.FileReader:
   文件字符输入流,只能读取普通文本
    读取文本内容时,比较方便快捷
5.字符流:char数组  字节流:byte数组
6.FileWriter:
    文件字符输出流,写
  只能输出普通文本(FileWriter中s.write()几面可以是字符串,换行符等)
7.输出流若没有文件都会自动新建你只需传个名字
8.BufferedReader:
      带有缓冲区的字符输入流。
     使用这个流的时候不需要自定义char数组和byte数组,自带缓冲
FileReader reader=new FileReader("src/io/Copy01.java");//fileReader是Reader的子类,BufferedReader需要传一个reader
            //当一个流的构造方法中需要另一个流的时候,这个被传进来的流叫做节点流(当前:FileReader)
            //外部负责包装的这个流,叫做包装流,或者处理流(当前:BufferedReader)
BufferedReader bf=new BufferedReader(reader);
关闭流,对于包装流来说,只要关闭最外层流就行,里面的节点流会自动关闭,(可以看源码)
9.//字节流
           /* FileInputStream fi = new FileInputStream("src/io/Copy01.java");
            //通过转换流转换
            InputStreamReader in=new InputStreamReader(fi);
            //这个构造方法只能传一个字符流,不能传字节流
           BufferedReader  bf=new BufferedReader(in);*/
            //合并:
           BufferedReader  bf=new BufferedReader(new InputStreamReader(new FileInputStream("src/io/Copy01.java")));
10.BufferedWriter:带有缓冲的字符输出流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不想打酱油

谢谢啦!我会加油的!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值