JAVA文件IO流学习(一)
程序员文章站
2024-03-04 21:02:00
...
JAVA文件IO流学习(一)
文件的最基本创建和几个基本函数
基本函数
新建一个文件对象:
File file=new File("666.txt");
判断文件是否存在的函数:
file.exists();
创建文件函数:
file.createNewFile();
创建文件三种种方式:
//第一种:判定当前文件是否存在
System.out.println("判断文件是否存在:"+file.exists());
//如果文件不存在去新建文件
if(!file.exists()){
file.createNewFile();
}
//第二种:一次性创建多层目录
File file1=new File("f://1//2");
if(!file1.exists()){
//如果创建的是多层目录,需要使用mkdirs()
//如果创建单层目录,使用mkdir()
file1.mkdirs();
}
//3.使用第二种构造器
//在给定目录里创建一个文件
File file2=new File(file1,"my.raf");
if(!file2.exists()){
file2.createNewFile();
}
获得文件相对路径:
String path=file.getPath();
获得文件绝对路径:
String absPath=file.getAbsolutePath();
获取当前电脑盘符:
File[] roots=File.listRoots();
for (File file1:roots){
System.out.println(file1);
}
获取文件名称:
file.getName();
获取文件长度:
file.length();
修改文件名称:
File file2=new File("988.txt");
boolean flag=file.renameTo(file2);
判断文件是不是文件夹:
file.isDirectory();
判断文件是不是文件:
file.isFile();
判断文件是否隐藏:
file.isHidden();
判断文件是否删除成功:
boolean b=file.delete();
返回某个目录下的所有文件和目录的文件名,返回的是String数组:
file.list();
返回某个目录下所有文件和目录的绝对路径,返回的是File数组:
file.listFiles();
使用过滤器得到指定的文件对象:
File[] files1=file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".txt");
}
});
完整三段代码:
第一部分:
import java.io.File;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
//如果使用其他系统
System.out.println(File.separator);
File file=new File("f://1.txt");
//1.判定当前文件是否存在
System.out.println("判断文件是否存在:"+file.exists());
//2.如果文件不存在去新建文件
if(!file.exists()){
file.createNewFile();
}
//通过另外一种方式构建
File file1=new File("f://1//2");
if(!file1.exists()){
//如果创建的是多层目录,需要使用mkdirs()
//如果创建单层目录,使用mkdir()
file1.mkdirs();
}
//3.使用第二种构造器
//在给定目录里创建一个文件
File file2=new File(file1,"my.raf");
if(!file2.exists()){
file2.createNewFile();
}
//4.判断当前文件的类型
System.out.println("判断当前文件是否是一个文件目录:"+file1.isDirectory());
System.out.println("判断当前文件是否是一个文件:"+file1.isFile());
//5.隐藏属性测试
System.out.println("判断当前file对象是否隐藏:"+file1.isHidden());
//6.删除文件属性,文件里没有子文件或者子目录
boolean b=file2.delete();
System.out.println("删除的状态:"+b);
}
}
运行结果:
第二部分:
package com.txh.day15_1;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
public class FileDemo_1 {
public static void main(String[] args) throws IOException {
File file=new File("666.txt");
//没有指定盘符默认放在当前项目的根目录
if(!file.exists()){
file.createNewFile();
}
//回去当前文件路径
String path=file.getPath();
System.out.println("获得当前文件相对路径"+path);
String absPath=file.getAbsolutePath();
System.out.println("获取当前文件的绝对路径:"+absPath);
//获取当前电脑的盘符
File[] roots=File.listRoots();
for (File file1:roots){
System.out.println(file1);
}
//获得文件名称
System.out.println("获得文件名称:"+file.getName());
//获取文件长度
System.out.println("文件长度:"+file.length());
//获得文件上次修改的毫秒数
long date=file.lastModified();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("上次修改时间:"+sdf.format(date));
//修改文件名称
File file2=new File("988.txt");
boolean flag=file.renameTo(file2);
System.out.println("修改文件名"+flag);
}
}
运行结果:
第三部分:
package com.txh.day15_1;
import java.io.File;
import java.io.FileFilter;
public class FileDemo_2 {
public static void main(String[] args) {
//./指代当前路径的父目录
File file=new File(".");
File[] files=file.listFiles();
for (File myfile:files){
System.out.println(myfile);
}
System.out.println("================");
//通过过滤器得到指定的文件对象
File[] files1=file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".txt");
}
});
System.out.println("===================");
for (File myfile:files1){
System.out.println(myfile);
}
//递归测试
myfind(file);
}
//封装一下
public static void myfind(File file){
//1.如果它是文件夹
if(file.isDirectory()){
//2.得到所有子文件夹
File[] files=file.listFiles();
//3.遍历所有子文件夹
for (File f:files){
//4.文件夹里是文件还是文件夹
//f有可能是文件也有可能是文件夹
if (f.isDirectory()){
//再来一遍
myfind(f);
}else if(f.isFile()){
//5.是文件的话找到所有java文件,输出打印信息
if (f.getName().endsWith(".java")){
System.out.println(f);
}
}
}
}
}
}
运行结果: