File类中的预定义变量
pathSeparator ;
separator windows下\ *nix / 可用于动态生成路径名,适用于跨平台
流:程序与 文件,数组,网络连接,数据库进行数据的交互,以程序为中心
IO流的分类:
1 流向:输入流和输出流
2 数据:字符流:文本文件,只能处理纯文本
字节流:二进制,一切文件
3 功能:节点流:包裹源头
处理流:增强功能,提供性能
字节流:InputStream和OutputStream
常用方法:read(byte[] b),read(byte[] b,int off,int len),close(),write(byte[]),write(byte[] b,int off,int len),flush()
字符流: Reader和Writer
常用方法:read(char[] text),read(char[],int off,int len),close(),write(char[] text),write(char[] text,int off,int len),flush()
操作:
1 建立联系
2 选择流
3 操作 数组大小,read,wirte
4 释放资源
读取文件:
1 建立联系: File对象 源头
2 选择流: InputStream FileInputStream
3 操作: byte[] car=new byte[1024];read 读取大小 输出
4 释放资源:关闭
写出文件:
1 建立联系: File对象 目的地
2 选择流: OutputStream FileOutputStream
3 操作:write() flush()
4 释放资源: 关闭
文件拷贝:将读取文件和写出文件相结合
文件夹拷贝:
import java.io.*;
public class CopyDir {
public static void copyDir(File src,File des) throws IOException{
if(src.isDirectory()){
des.mkdirs();
for(File temp:src.listFiles()){
copyDir(temp,new File(des,temp.getName()));
}
}else if(src.isFile()){
CopyBinary.copyFile(src,des);
}
}
}
缓冲流:
BufferedInputStream
BufferedOutputStream
BufferedReader
新增方法:readLine()
BufferedWriter
新增方法:newLine()
编码:字符--编码字符集--> 二进制
解码: 二进制 --解码字符集-->字符
出现乱码的两个原因:
编码字符集和解码字符集不同,字节数长度不够
字节流转字符流:
InputStreamReader:
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(new File("c:/users/lenovo/desktop/hello.txt")),"Unicode"));
OutputStreamWriter:
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FilOutputStream(new File("c:/users/lenovo/desktop/hello.txt")),"Unicode"));