Java学习笔记之——IO

一. IO

IO读写

流分类:

按照方向:输入流(读),输出流(写)

按照数据单位:字节流(传输时以字节为单位),字符流(传输时以字符为单位)

按照功能:节点流,过滤流

四个抽象类:

InputStream:输入字节流

OutputStream:输出字节流

Reader:输入字符流

Write:输出字符流

1. 第一组:文件的读写流

FileInputStream  VS  FileReader

 

 

1)字节流

FileInputSream:字节输入流

常用方法:

int

read()

从该输入流读取一个字节的数据。 如果当前位置没有则返回-1

int

read(byte[] b)

从该输入流读取最多 b.length个字节的数据为字节数组。

int

read(byte[] b, int off, int len) off:开始读的位置,len:读的长度

从该输入流读取最多 len字节的数据为字节数组。

void

close()

关闭此文件输入流并释放与流相关联的任何系统资源。

作用:

以字节为单位从文件中把数据读到程序中

使用步骤:

  a.创建流对象

   

  b.读数据,read,重点

   

  c.释放资源,close()

   

 

注意:1.在文件中,通常一个字母占用1个字节,一个汉子至少占用2个字节,具体根编码有关。

  2.从非内存中读取数据要比从内存中读取要慢很多,效率不高

可以一次读取多个来提高效率

 

FileOutputStream:字节输出流

常用方法:

void

write(int b)

将指定的字节写入此文件输出流。

void

write(byte[] b, int off, int len)

将 len字节从位于偏移量 off的指定字节数组写入此文件输出流。

void

write(byte[] b)

将 b.length个字节从指定的字节数组写入此文件输出流。

void

close()

关闭此文件输出流并释放与此流相关联的任何系统资源。

作用:

以字节为单位从程序中把数据写入到文件中

使用步骤:

  a.创建流对象 

  b.写数据,write

  c.关闭

   

 

2)字符流

FileReader:输入字符流

 

 

FileWrite:输出字符流

 

 

 

 

 

 

 

 

 

 

 

 

========================================================

3)可读可写字节流

RandomAccessFile

1. 缓冲流

 

2. 字符流(高级流)

1)

2)

4.对象流

序列化

反序列化

5.字符缓冲流

 

 

 

 

 

 

笔记做的不全,这位大神做的很全  https://www.cnblogs.com/caixiaohua/p/6737808.html

 

posted @ 2018-12-14 18:43  老文这个胖子  阅读(97)  评论(0编辑  收藏  举报