一:Java I/O流
1.I/O流对象继承关系
2.文件操作
//创建文件对象,没有目录就创建
File file = new File("E://waw.txt");
if(!file.exists){
file.ceateNewFile(); //创建文件
}
//操作文件
使用流->.>>>>>>>
3.字节流
一次读取一个字节
InputStream OutputStream 字节输入输出流 , BufferedInputStream BufferedOutputStream缓冲区的字节输入输出流->flush()刷新缓冲区
(1)读取文件中的内容
OutputStream os = new FileOutputStream("",true); //
(2)
其实缓冲输入输出字节流,跟非缓冲字节输入输出流的区别就是,缓冲字节输入输出流存在一个缓冲区,read内容先放到缓冲区一般为10 ,满了就读进来。不满可以使用flush()刷新缓冲区。
4.字符流
一次读取一个字符
(1)
源文件中的编码方式为UTF-8,输出时也为UTF-8,结果输出乱码,问题就出现在FileReader读取文件的过程中,FileReader继承了InputStreamReader,但是并没有实现父类中带字符集参数的构造函数。
(2)
可以直接设置读取文件读取编码格式
二:随机存取 RandomAccessFile
1.随机存取不是流,是对流的封装类。因为有seek指针所以可以进行随机读取
RandomAccessFile raf = new RandomAccess("路径","rw");//以读写方式打开文件
raf.writeChars(" ");
raf.getFilePointer();//文件指针
raf.seek(4) //定位指针
raf.setlength(1024*1024);//设置文件的长度
三:对象的存取以及序列化
想要读,文件中必须要有对象,所以需要先写再读。
ObjectOutputStream file = new ObjectOutputStream(new FileOutputStream);
file.wirteObject();
file.readObject();
(1)对象放入磁盘文件中
读取磁盘文件中的对象。
序列化对象