IO概念
在java中IO是流
流分为两大类
输入流、输出流
从外界到程序是输入流
从程序到外界是输出流
按类型分为
字节输入流(InputStream)
字节输出流(OutputStream)
字符输入流(Reader)
字符输出流(Writer)
字节输入、输出流中用法
/**================字节输入输出流===================**/
//字节输入流是接口指向文件输入流对象
//获取文件输入流
InputStream is = new FileInputStream(path);
//读取字节放
is.read();//一个字节一个字节的读取
byte[] by = new byte[1024];//1kb
is.read(by);//获取指定数组的字节返回获取的长度
is.close();
//字节输出流
//获取文件输出流
OutputStream os = new FileOutputStream(path);
//输出方法
byte[] by2 = new byte[1024];
os.write(by2);//输出指定字节数组
os.close();
/**============输入流获取、输出流输出==============**/
InputStream is = new FileInputStream(path);
OutputStream os = new FileOutputStream(path);
int len = -1;
byte[] by = new byte[1024];
while((len = is.read(by)) != -1){
os.write(by,0.len);//输出
}
is.close();
os.close();
字符输入、输出流用法
/**=============字符输入输出流===========================**/
//字符输入流
//获取字符输入流
File f = new File(path);
Reader r = new FileReader(f);
//常用方法
r.read();//读取一个字符
char[] ch = new char[1024];
r.read(ch);//通过char数组获取字符
//字符输出流
Writer w = new FileWriter(f);
//常用方法
w.write("");//写出字符串
w.write(new char[1024]);//用char数组写出
字节数组输入、输出流用法
/**=============字节数组输入输出流========================**/
//获取字节数组输入流
byte[] arr = "字节数组输入流".getBytes();
ByteArrayInputStream bis = new ByteArrayInputStream(arr);
//常用方法
bis.read(new byte[1024]);//通过数组读取
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bos.toByteArray();//获取数据
字节缓冲输出、输出流(推荐使用)
/**=============字节缓冲流输入,输出========================**/
BufferedInputStream b = new BufferedInputStream(new FileInputStream(new File("")));
//常用方法
b.read();
BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream(new File("")));
//常用方法
bo.wait();
bo.flush();
字符缓冲输入,输出流
BufferedReader br = new BufferedReader(new FileReader(new File("")));
//常用方法
br.readLine();//逐行读取
BufferedWriter buw = new BufferedWriter(new FileWriter(new File("")));
//常用方法
buw.newLine();//换行
其他扩展流
//都采用了设计模式中的装饰设计模式
//对象输入输出流
ObjectInputStream ois = null;
ObjectOutputStream os = null;
//数据输入输出
DataInputStream dis = null;
DataOutputStream dos = null;