File类
file类在java.io包中,用于程序与文件的交互。
创建File类
创建一个File对象,不一定存在对应的文件。
File a=new File("文件的路径");//该路径下的文件可以不存在
相关方法
-
实现文件和文件夹的操作
createNewFile():创建文件
delete(): 删除文件
renameTo():移动文件
mkdir()和mkdirs():创建文件夹
delete(): 删除文件夹 -
获取文件属性
boolean exists():判断文件或目录是否存在
String getName():返回文件或目录的名称
String getParent():返回父路径的路径名字符串
String getAbsolutePath():返回绝对路径的路径名字符串
String getPath():返回抽象路径的路径名字符串
boolean isDirectory():判断当前文件是否为目录
long length():返回当前文件的长度
文件操作流
. 字符流操作
FileReader/FileWriter
以字符的形式操作文件,当文件为文本文件时,不包含图片,音频,视频等,优先考虑 使用字符流,可以提升效率。在处理图片,音频,视频文件时会出现乱码。
字符流操作
InputStream和OutputStream
用字节操作文件,可以操作所有类型的文件,但效率不如字符流
基本操作
1、字节流:文件的复制
File f1=new File("E:\\a\\aaaa\\ccc","ss.java");//创建File对象,原文件
File f2=new File("E:\\a\\aaaa\\ccc\\kk","xx.java");//复制的路径
FileInputStream is=new FileInputStream(f1);//创建一个字节输入流
FileOutputStream os=new FileOutputStream(f2);//创建一个字节输出流
//is.reder()从输入流中读取字节到指定的字节数组中,返回字节数组的长度
while((len=is.read(tem))!=-1)
{
//os.writer()将字节数组中的字节,写入os对应的文件中
os.write(tem,0,len);
//也可将数组中的字节转成字符输出
System.out.printf(new String(tem,0,ken));
}
2、字符流:
//和上面类似
FileReader fr=new FileReader(file1);//原文件
FileWriter fw=new FileWriter(file2);//复制的路径
char ch[]=new char[5];
int tmp=-1;
while((tmp=fr.read(ch))!=-1){
fw.write(ch,0,tmp);//也可以打印输出
}
fw.close();
注意
文件读写操作时出现乱码,一般有两种情况,一是字节转字符时,字节数不够,一种是
字符字节转换时编码集使用不统一。