IO流编程

一.字节与字符
Java采用Unicode编码,每个字符占2个字节,一个字符占两个字节。
IO: I:input 输入流, output 输出流

2
假如:硬盘为参照物1是输出,2是输入
程序为参照物1是输入 2是输出
单Java中,我们以程序为参照物,程序读取硬盘东西为输入流 , 想把程序里的东西写入硬盘位输出流
二.File文件类文件和目录路径的抽象表示
1.File类的过滤器
• public String[] list(FilenameFilter filter)
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。

•   public File[] listFiles(FilenameFilter filter)

返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

练习:

这里写图片描述
列题:
一个文件后缀统计器

字节流和字符流

•   流就像我们的桥梁 ,沟通两地
•   字节流 :   8位流 

是一个二进制文件,我们不能看懂。
内存 ==> 程序(Inputstream)
程序 ==> 内存(outputstream)
• 字符流 :操作字符(平常能看懂的文件) 16位流
Byete ==> 文字 ==>char
Char ==>文字==>byete
• 字符流是加工流
讲字节转为字符再次输出 , 木材是原材料,然后再被加工成为了家居。。加工流必须依靠运输流

•   8位流里面的操作类  

 InputStream        outputStream 是父类
•    FileInputStream     FileOutputStream是子类
•    BufferedInputStream   BufferedOutputSteam 缓冲流
•    DataInputStream      DataOutputStream 

数据类型流
• ObjectInputStream ObjectOutputStream
对象流

•    OutputStreamwriter    InputStreamReader 

字符流

字节流读取
File –> fileinputStream –>bufferinputstream (高效)
File –> fileoutputstream –>bufferedoutputstream (高效的)
低级流 就是能够直接读写文件
高级流 在低级流的基础上,提供了一些其他的功能

字符流读取 (桥梁 )
File –>filereader –>高效 Bufferreader
File –>filewriter –> 高效 bufferedwriter
InputStreamReader
outputStreamReader 字符体系,可以指定字符集

对象流
Object inputstream
Objectoutputstream
序列化 :把对象按照流一样的方式存入文本文件中或在网上传输,也就是对象写入数据
反序列化: 把文本文件的流对象数据还原成对象,流数据变为对象

必须实现Serializable
如何让它不被网络传输 ?
加上transient 临时的
随机文件访问流?
Randomaccessfile 支持对随机访问文件的读取和写入
主要方法 getfilepointer 读取第几个字节
Seek 指定第一个位置算

模拟多线程下载

Properties
读取 可以保存在流中从流中加载
Load 输入流
Store 输出流
Setproperty
Getproperty

1.  新的IO流 

介绍新IO流
JDK1.4开始引入新的IO(NIO) new io

主要从两个方面来提高IO操作的效率
1. 利用bufer缓冲器及chanel通道来提高IO的操作速度
2. 利用selector 来支持非阻塞操作
File chanmel 是用来读取写得通道
用处: 如果是对于单纯的拷贝操作,可用FileChanmel的静态方法
方法:
Transferfrom 两个方法 JDK1.7以后有
Transferto
JDK 1.7的改进
Path 路径
Paths
Files

注 静态只执行一次

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值