实例化
1、File file = new File(“hello.txt”);
2、File file2 = new File(absolutePath);
3、Properties properties = System.getProperties();File file3 = new File(“D:”+File.separator+…);
4、File file4 = new File(new File(parentPath],filename);
5、File file5 = new File(parentPath,filename);
相关方法
//绝对路径
String absolutePath = file.getAbsolutePath();
//路径
String path = file.getPath();
//文件(目录)名
String name = file.getName();
//返回父路径
String parent = file.getParent();
//返回文件长度
long length = file.length();
//文件最后修改时间
long time = file.lastModified();
//当前所有文件或目录的名称
String[] li = file.list();
for(String na : li) {
System.out.println(na);
}
//返回目录下所有文件
File[] files = file.listFiles();
//判断文件是否存在
boolean isExist = file.exists();
//判断是否是文件
boolean isFIle = file.isFile();
//判断是否是目录
boolean isDirectory = file.isDirectory();
if(!file.exists()) {
//创建该文件
file.createNewFile();
}else {
//删除该文件
file.delete();
}
//在已有目录基础下创建
boolean flag = file.mkdir();
//创建所有目录(强制)
boolean flag1 = file.mkdirs();
实现功能:
//递归输出目录中子目录及文件所有名称
public static void printName(File file) {
System.out.println(file.getName());
if(!file.exists() || file==null) {
return;
}else if(file.isDirectory()){
File[] files = file.listFiles();
for(File file2 : files) {
printName(file2);
}
}
}
//统计文件(目录)大小
public static void getLength(File src) {
long length = 0;
if(src.exists() || src!=null) {
if(src.isFile())
length += src.length();
else {
File[] files = src.listFiles();
for(File file : files) {
getLength(file);
}
}
}
}
文件流
//单个字符读取
FileReader fr = new FileReader(file);
int ch = -1;
while((ch = fr.read()) != -1) {
System.out.print((char)ch);
}
//使用字符数组读取
int len = -1;
char[] buffer = new char[1024];
while((len = fr.read(buffer)) != -1) {
System.out.println(new String(buffer,0,len));
}
fr.close();
//写入字符串
FileWriter fw = new FileWriter(file);
fw.write("abc");
fw.flush();
fw.close();
文件流实现文件的拷贝:
public static void copyFile(File file){
try(
FileReader fr = new FileReader(file);
FileWriter fw = new FileWriter("");
){
char[] buffer = new char[1024];
int len = -1;
while((len = fr.read(buffer)) != -1) {
fw.write(buffer,0,len);
}
}catch (IOException ioException) {
ioException.printStackTrace();
}
}
缓冲流
BufferedReader bufferedReader = new BufferedReader(new FileReader(file);
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file);
String str = bufferedReader.readLine(); //读取一行
while(str != null) {
bufferedWriter.write(str);
bufferedWriter.newLine(); //换行
bufferedWriter.flush();
str = bufferedReader.readLine();
}
bufferedWriter.close();
打印流
打印流只有输出,没有输入
//创建字节流对象
PrintStream ps = new PrintStream(file);
//创建字符流对象
FileOutputStream fos = new FileOutputStream(file);
PrintWriter pw = new PrintWriter(fos, true);
//使用write写
pw.write('a');
//使用print(自动调用flush)
ps.println('b');
//关闭流
//pw.close();
commons-io工具类
(Apache commons project 所提供的工具类)
//返回文件大小
long le = FileUtils.sizeOf(file);
//可筛选返回符合条件的文件
Collection<File> files1 = FileUtils.listFiles(file,EmptyFileFilter.NOT_EMPTY , null);
Collection<File> files2 = FileUtils.listFiles(file,EmptyFileFilter.NOT_EMPTY , DirectoryFileFilter.INSTANCE);
//读取文件
String string = FileUtils.readFileToString(file,"UTF-8");
byte[] bs = FileUtils.readFileToByteArray(file);
List<String> strings = FileUtils.readLines(file,"UTF-8");
LineIterator lineIterator = FileUtils.lineIterator(file);
//写入文件
FileUtils.writeByteArrayToFile(file, "hello".getBytes("UTF-8"));
List<String> datas = new ArrayList<>();
datas.add("a");
FileUtils.writeLines(file, "UTF-8", datas);
//其他方法
FileUtils.copyFile(srcFile, destFile);
FileUtils.copyFileToDirectory(srcFile, destDir);
FileUtils.copyDirectory(srcDir, destDir);
FileUtils.copyURLToFile(source, destination);
1074

被折叠的 条评论
为什么被折叠?



