1、文件操作(File)
1.1文件的创建与删除
File类是I/O包中唯一代表磁盘文件本身对象,指能文件的创建删除等。定义一些操作文件的方法。如果进行File类操作那么必须设置好要操作的文件或文件夹的路径,使用如下构造方法:
·构造方法:publicFile(String pathname),传入完整的路径,WEB开发此构造此方式比较好用
·构造方法:public File(File parent, String child),传入父路径和子路径
范例:基本的文件操作
·创建新的文件:public boolean createNewFile() throws IOException;
·删除文件:public boolean delete()
·判断文件是否存在:public boolean exists()
注意:文件分隔符在windows下位”/”而在Linux中使用”\”,为可跨平台,使用File.separator。
public static final String separator
File file=new File("D:"+File.separator+"test.txt");
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
//file.delete();
}
问题一:在程序执行完成之后文件并不会立刻删除或者创建,存在一定的延时,因为Java通过JVM调用系统函数实现文件操作。
问题二:如果在进行文件创建的时候有目录,则需要先创建目录才可以创建文件。
·找到父路径:public File getParentFile()
·创建路径:public boolean mkdir() //如果父路径不存在,则报错。只能创建一级路径
·创建路径:public boolean mkdirs() //创建多级路径
File file=new File("D:"+File.separator+"test"+File.separator+"test.txt");
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
1.2文件的信息
File类提供很多方法用于获取文件本身的一些信息,常用方法如下:
·更改文件名:publicboolean renameTo(File dest)
File file=new File("D:"+File.separator+"test"+File.separator+"test.txt");
if(file.exists()){
System.out.println("文件名:"+file.getName());
System.out.println("文件长度:"+file.length());
System.out.println("文件是否是隐藏:"+file.isHidden());
System.out.println("是否是文件夹:"+file.isDirectory());
System.out.println("是否是文件:"+file.isFile());
System.out.println("文件是否是隐藏:"+file.isHidden());
System.out.println("最后一次修改日期:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(file.lastModified())));
file.renameTo(new File("D:"+File.separator+"test"+File.separator+"test2.txt"));
}else{
System.out.println("文件不存在");
}
如果给定的是一个文件夹,列出该文件夹中的所有文件夹(和文件):
·列出所有目录:public File[] listFiles()
示例:
public class File_listFiles_Test {
public static void main(String[] args) {
File file=new File("D:"+File.separator);
print(file);
}
public static void print(File file){
if(file.exists() && file.isDirectory()){
File [] files=file.listFiles();
if(files!=null){
for(File f : files){
print(f);
}
}
}
System.out.println(file);
}
}
删除文件/文件夹方法:publicboolean delete()
注意:删除是彻底删除的!!!