File类和 IO流学习 总结-适用于初学者

173 阅读2分钟

**小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
**

1.File类

File :磁盘上的文件或目录
(1)作用:用来存储磁盘上的文件或目录的信息,以及对他们的操作
(2)构造器:
File(String path);

(3)方法:
getName(); //获取文件或目录名

getPath(); //获取路径
getAbsolutePath(); //获取绝对路径

getParent(); //获取父目录路径
canRead();
canWrite();
isHidden();

length();

delete();
mkdir();
mkdirs();
createNewFile();

exists()

....

2.流的概念
java语言中,用来数据传输的载体。

3.流的分类
(1)传输方向
输入流:读取数据源数据到程序中
输出流:把程序中的数据写入到目的端

(2)处理方式
字节流:读写的基本单位是一个字节
字符流:读写的基本单位是一个字符

(3)基本功能
节点流
过滤流

4.字节流
(1)字节输入流
接口:InputStream
实现类:FileInputStream

方法:void close();
int read();
int read(byte[] b)
int read(byte[] b,int offset,int len)

说明:读取数据失败,返回-1

(2)字节输出流
接口:OutputStream
实现类:FileOutputStream

方法:void close();
void write(int i)
void write(byte[] b)
void write(byte[] b,int offset,int len)

5.字符流
(1)字符输入流
父类:Reader
实现类:FileReader

方法:void close();
int read();
int read(char[] b)
int read(char[] b,int offset,int len)

说明:读取数据失败,返回-1

(2)字符输出流
父类:Writer
实现类:FileWriter

方法:void close();
void write(int i)
void write(char[] b)
void write(char[] b,int offset,int len)

void write(String str);

6.字符集
(1)字符集就是字符在存储时转换为二进制的交换规则。
(2)常见的字符集有:
ascii 英文字符集
iso-8859-1 英文字符集

gbk 英文中文字符集
gb2312 英文中文字符集

utf-8 英文中文及其他字符字符集

(3)乱码问题:
a.采用的字符集不支持该字符
b.编码和解码采用的字符集不一致

7.字节流转为字符流
(1)InputStreamReader(InputStream in)
(2)OutputStreamReader(OutputStream out)

8.过滤流
(1)用途:封装节点流,增强功能
(2)举例:
BufferedInputStream(InputStream in);
BufferedOutputStream(OutputStream out);

BufferedReader(Reader in);
BufferedWriter(Writer out);