黑马程序员<梦想之旅> IO

<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流!





I/O

File类      

(文件与目录路径的抽象表示形式)

**表示路径的分隔符,用File.separactor表示,为了保证程序在不同的平台的兼容性。

File类没有无参构造函数;字符串表示路径,需要双斜杠转义;

相对路径:

       在执行java程序的时候,相对路径是执行java的时候当前所在目录路径;

一般使用绝对路径。

 

new File(Stringpathname);

newFile(File parent,String child);

           根据parent抽象路径名和child路径名字符串创建一个File对象;

newFile(String parent ,String child);

 

listFiles()遍历file,返回一个带路径的File数组.getName() 获取文件/目录名;

listFiles(FileFilterfilter) 返回符合抽象路径名过滤条件的File[];

listFiles(FilenameFilterfilter) 返回符合抽象路径名过滤条件的File[];

 

增强for循环:

       for(类型 变量名 : 需要迭代的数组或集合){ }

 

 程序是有数据+指令+文档组成; 

InputStreamOutputStream  IO

InputStream/OutputStream  所有字节输入/出流的抽象父类,不能new对象;

操作硬盘文件的流; 可以操作文本、音频、视频、图像等。。。

 

FileInputStream  文件字节输入流,用于读取文件;

FileOutputStrem  文件字节输出流,用于输出文件;(如果涉及文件正在被使用,那么该构造方法失效); 会抛出一个FileNotFoundException.

 

使用read方法,返回值是int类型;读到文件的末尾,返回-1 ; (用作判断条件)

read()一次读取一个字节,效率低;

read(byte[] byt )byte数组做缓冲,数据存进数组里。

byte[] byt = new byte [1024];( 数组是不可变的,所以需要指定大小.

使用1024个字节,即1k ;)

可以使用byte数组作为缓冲,也可以使用IO内部的缓冲流。

BufferedInputStream

 

    ------>Object

       ------>InputStream

           ------->FilterInputStream

              ------->BufferedInputStream

构造方法:

BufferedInputStream(InputStream in)

BufferedInputStream(InputStream in ,int size)指定缓冲区大小;

在没有指定缓冲区大小的时候,默认为8192 。

BufferedOutputStream 

------>Object

       ------>OutputStream

           ------->FilterOutputStream

              ------->BufferedOutputStream

实现缓冲的输出流,通过设置该流,程序可以将各个字节写入底层输入流中,而不必针对每次字节写入调用底层系统。

 

构造方法:

    BufferedOutputStream(OutputStream out)

BufferedOutputStream(OutputStream out ,int size)指定缓冲区大小;

在没有指定缓冲区大小的时候,默认为8192 。

注意方法: flush()

使用缓冲输出流,使用flush刷出,(一边写一边刷)将缓冲中的字节刷入到文件中去。或者使用close方法关闭流。 为避免不必要的错误,使用close(),先flush();

 

字符流

 

操作文本文档,使用字符流;方便操作字符文件,例如中文文档。

一个汉字是一个字符,由两个字节组成。

Reader - - - 用于读取字符流的抽象类。

    - - ->Object

       - - ->Reader

           - - -> InputStreamReader

           - - -> BufferedReader(字符缓冲流)

               - - ->FileReader(用来读取字符文件的便捷类)

BufferedReader

    构造方法:

       BufferedReader (Reader in)

       BufferedReader (Reader in ,int size)

 方法:readLine() 一次读一行字符。

 

Writer - - - 写入字符流的抽象类。

    - - ->Object

       - - ->Writer

           - - ->OutputStreamWriter

- - -> BufferedWriter

              - -->FileWriter

BufferedWriter

构造方法:

    BufferedWriter(Writer out)

    BufferedWriter(Writer out,int size)

 


序列化

 

 

---->Object

    ----->InputStream

       ----->SequenceInputStream

----->ObjectInputStream

SequenceInputStream

表示其他输入流的一个逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾。接着从第二个输入流读取,依此类推,直到到达最后一个输入流的文件末尾结束。

 

构造方法:(暂时先记录一个)

    SequenceInputStream (InputStream in1,InputStream in2)

 

ObjectinputStream

 



<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值