Java I/O流 与 随机存取 以及 序列化

一: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)对象放入磁盘文件中

读取磁盘文件中的对象。

序列化对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容