File文件
File:指定盘符下文件和文件夹
构造方法:
- pathname : 文件路径
- File file = new File(“路径”);
方法:
- createNewFile(); 创建文件:有该文件则不创建,返回false
- mkdir(); 创建文件夹:有该文件夹则不创建,返回false
- mkdirs(); 创建多层文件夹:
- isFile(); 判断是否是文件:
- isDirectory(); 判断是否是文件夹:
- exists(); 判断文件是否存在:
- length(); 返回文件的长度: 单位是字节个数
win 路径分隔符
linux 路径分隔符 /
File.separator 当先系统的路径分隔符
I/O流
Input (输入) 读取数据到内存
Output (输出) 写数据到文件
字节流
字节输入流:FileInputStream
FileInputStream fis=FileInputStream(“地址”);
- read(); 读取一个字节,下次读下一个字节
- read(byte[] b);
字节输出流:FileOutputStream
FileOutputStream fos=FileOutputStream(“地址”,true(追加写));
- write(); 写数据 覆盖写 追加写
字符流
底层还是字节流,字符流专门处理文本
字符输入流:FileReader();
字符输出流:FileWriter();
复制文件
public static void main(String[] args) {
FileInputStream fis = null;//字节输入流
FileOutputStream fos = null;//字节输出流
long start = System.currentTimeMillis();//获取文件复制时的时间
try {
fis = new FileInputStream("D:\\A");//要复制的文件地址
fos = new FileOutputStream("C:\\A");//复制到的地址
byte[] bytes = new byte[1024];
int len = fis.read(bytes);//输入文件的数据
while (len!=-1){
fos.write(bytes,0,len);//输出文件
len = fis.read(bytes);
}
long end = System.currentTimeMillis();//获取文件复制后时的时间
System.out.println("拷贝完毕"+(end-start)+"ms");
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}finally {
if (fis==null){
try {
fis.close();//关闭流
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if (fos==null){
try {
fos.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}