Java学习笔记之——IO

时间:2024-05-11 00:04:31

一. IO

IO读写

流分类:

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

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

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

四个抽象类:

InputStream:输入字节流

OutputStream:输出字节流

Reader:输入字符流

Write:输出字符流

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

FileInputStream  VS  FileReader

Java学习笔记之——IO

(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.创建流对象

  Java学习笔记之——IO

  b.读数据,read,重点

  Java学习笔记之——IO

  c.释放资源,close()

  Java学习笔记之——IO

注意: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.关闭

  Java学习笔记之——IO

(2)字符流

FileReader:输入字符流

Java学习笔记之——IO

FileWrite:输出字符流

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

(3)可读可写字节流

RandomAccessFile

1. 缓冲流

2. 字符流(高级流)

(1)

(2)

4.对象流

序列化

反序列化

5.字符缓冲流

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