第十章IO流基本概念

java.io.File类
1.凡是与输入和输出相关的类,接口,等定义在java。io包下
2.File是一个类,可以有构造器创建其对象,此对象对应着一个文件(.txt .avi .doc .ppt .mp3 .jpg)或文件目录
3.File类的对象是与平台无关的。
4.File中的方法,仅涉及如何做到创建,删除,重命名等等,只要涉及到文件内容,File是无能为力的,必须由io流出来完成
5.File类的对象通常作为io流具体类的构造方法的形参

访问文件名
getName()
getPath()
get1AbsoluteFile()
get1AbsolutePath()
getParent()
renameTo(File newName()
file。renameTo(file):file1重命名为file2.要求file2一定不存在
文件检测
exists()
canWrite()
canRead()
isFile()
isDriectory()
信息常规文件信息
lastModified()
length()
文件操作相关
createNewFile()
delete()
目录操作相关
mkDir() //创建一个文件目录,只有在上层文件目录存在的情况下,才能返回true
mkDirs()//创建一个文件目录,若上层文件目录不存在,一并创建。
list()
listFiles()

1.流的分类
按照数据流向的不同,输入流,输出流
按照处理数据的单位的不同,字节流,字符流(处理的文本文件)
按照角色不同的:字节流(直接作用于文件的)处理流
2.IO的体系
抽象类 节点流 缓存流
文件流 处理流的一种,可以提升文件的操作的效率
InputStream FileInputStream BufferedInputStream
OutputStream FileOutputStream BufferedOutputStream(flush()
Reader FileReader BufferedReader (readLine())
Writer FileWriter BufferedWriter (flush())
书写步骤
//使用try-catch的方式处理器异常比较合理!
//从硬盘存在的一个文件中,读取其内容到程序的过程,使用FileInputStream
//要读取的文件一定要存在否者抛FileNotFoundException
1.//创建一个File类的对象
2.创建一个FileInputStream类的对象
3.调用FileInputStream的方法,实现file文件的读取。
//read()读取文件的一个字节,当前执行到文件结尾时。返回-1
4.关闭相应的流

OutputStream
1.//创建一个File类的对象。表名要写入的文件位置
//输出的物理文件可以不存在,当执行过程中,若不存在,会自动创建的。
2.创建一个FileOutputStream类的对象将file的对象作为形参的传递给FileOutStream的构造器中
3.写入的操作
4.关闭相应的流

//使用FileReader,FileWrite 可以实现文本文件的复制
//对于非文本文件(视频文件,音频文件,图片)只能使用字节流!
不能实现非文本的复制

//BufferedInputStream和 BufferedOutputStream实现非文本文件的复制
1.提供一个读入文件
2.想创建相应的节点流文件, FileInputStream,, FileOutputStream
3.将创建的节点流的对象作为形参传递给缓冲流的构造器
4.具体的实现例
5.关闭相应的流
char[] c=new char[50];
int len;
while((len=fis.read())!=-1){
fw.writer(c,0,len)
fw.flush();
}
//String str=null;
while((str=fis.readLine())!= null){
fw.while(str+”\n”);

fw.newLine()
fw.flush();
}
****TXT为文本文件

打印流和数据流的使用
打印流         
字节流             字符流 
PrintStream     PrintWriter

对象流的引用
《面试问》什么是对象序列化机制
答:允许把内存中的Java对象转换成与平台无关的二进制流,从而允许吧这中二进制流持久的的保存在
磁盘上,伙同网络讲这种二进制流传传输到另一个网络节点。
反序列化机制
答:当其他的程序获取了这种二进制流,就可以恢复成原来的Java对象 
要实现序列化的类,
1.要去此类是可序列化,实现Serializable接口
2.要求类的属性同样的要实现Serializable接口
3.提供一个版本号:private static final long serializableUID=******;
4.使用static 或transient修饰的属性,不可以被实例化。

RandomAccessFile:支持随机访问
1.既可以充当一个输入流,有可以充当一个输出流
2.支持从文件的开头读取,写入
3.支持任意位置的读取 写入(插入)
构造器
public RandomAccessFile(File file ,String mode)
oublic RandomAccessFile(String name,String mode)
mode
r:以读取方式打开
rw:打开以遍读取与写入
rwd 打开以遍读取与写入。同步文件内容的更新
rws 打开以遍读取与写入。同步文件内容和元数据的更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值