package fengke.filedemo; |
import java.io.File; |
import java.io.IOException; |
/** |
* java.io.File的基本使用以及关于Windows中大小写问题 |
* @author 锋客 |
* 注意:文件创建的异常;默认路径与绝对路径的问题;多级目录的创建 |
* 掌握三种构造方法;不能用于文件内容的访问。 |
* |
*/ |
public class FileDemo { |
/* File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问 |
* File类提供的三个构造方法(重点) |
* 1)File (String pathname) |
* 例:File f1=new File("FileTest1.txt"); |
* 注意:创建文件对象f1,f1所指的文件是在当前目录下创建的FileTest1.txt |
* 默认路径问题 |
* 2)File (String parent , String child) |
* 例:File f2=new File(“D:\\dir1","FileTest2.txt") ; |
* 注意:D:\\dir1目录事先必须存在,否则异常 |
* 3)File (File parent , String child) |
* 例:File f4=new File("\\dir3"); 目录 |
* File f5=new File(f4,"FileTest5.txt"); |
* 在如果 \\dir3目录不存在使用f4.mkdir()先创建 |
*File提供的方法: |
*创建方法: |
* 1.boolean createNewFile() 不存在返回true 存在返回false |
* 2.boolean mkdir() 创建目录 |
* 3.boolean mkdirs() 创建多级目录 |
*删除方法: |
* 1.boolean delete() |
* 2.boolean deleteOnExit() 文件使用完成后删除 |
*判断方法: |
* 1.boolean canExecute()判断文件是否可执行 |
* 2.boolean canRead()判断文件是否可读 |
* 3.boolean canWrite() 判断文件是否可写 |
* 4.boolean exists() 判断文件是否存在 |
* 5.boolean isDirectory() 判断是否为目录 |
* 6.boolean isFile() 判断是否为文件 |
* 7.boolean isHidden() 判断是否隐藏 |
* 8.boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断 |
* 9.boolean isFormField() |
* 普通文本表单字段,还是一个文件表单字段,如果是普通表单字段则返回true,否则返回false。 |
* 因此,可以使用该方法判断是否为普通表单域,还是文件上传表单域 |
* |
*获取方法: |
* 1. String getName()//获得文件上传字段中的文件名 |
* 注意:IE或FireFox中获取的文件名是不一样的,IE中是绝对路径,FireFox中只是文件名。 |
* 2. String getPath()//默认路径:创建时是相对路径则为相对路径,创建时为绝对路径则为绝对路径 |
* 3. String getAbsolutePath()//绝对路径 |
* 4. String getgetCanonicalPath()//全路径 |
* 如果构造的时候就是全路径那直接返回全路径 |
* 如果构造的时候试相对路径,返回当前目录的路径+构造file时候的路径 |
* 4. String getParent()//如果没有父目录返回null |
* 5. long lastModified()//获取最后一次修改的时间 |
* 6. long length() |
* 7. boolean renameTo(File f) |
* 8. File[] liseRoots()//获取机器盘符 |
* 9. String[] list() |
* 10.String[] list(FilenameFilter filter) |
* 11.String getFieldName()//返回表单标签name属性的值。<input type="text" name="column" />的value |
* |
*/ |
public static void main(String[] args) throws IOException { |
// 了解构造函数的情况 查帮助 |
File file = new File( "E:\\javaio\\fengke" ); |
//System.out.println(file.exists()); |
if (!file.exists()) |
file.mkdirs(); //file.mkdir() |
else |
file.delete(); |
//文件或目录还未创建 |
System.out.println( "**********创建file,file2,file3前********" ); |
//是否是一个目录 如果是目录返回true,如果不是目录or目录不存在返回的是false |
System.out.println( "是否存在目录E:\\javaio\\fengke=====" +file.isDirectory()); |
//是否是一个文件 |
System.out.println( "是否是个文件E:\\javaio\\fengke=====" +file.isFile()); |
|
//File file2 = new File("e:\\javaio\\日记1.txt"); |
File file2 = new File( "e:\\javaio" , "日记1.txt" ); |
//路径的使用 |
File file3 = new File( "日记2.txt" ); |
if (!file2.exists()) |
try { |
file2.createNewFile(); |
} catch (IOException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
else |
file2.delete(); |
if (!file3.exists()) |
try { |
file3.createNewFile(); |
} catch (IOException e) { |
// TODO Auto-generated catch block |
e.printStackTrace(); |
} |
else |
file3.delete(); |
//常用的File对象的API |
System.out.println( "*************路径问题**************" ); |
System.out.println( "输出目录file = new File('E:\\javaio\\fengke'):" +file); //file.toString()的内容 |
System.out.println( "目录file = new File('E:\\javaio\\fengke')的绝对路径:" +file.getAbsolutePath()); |
System.out.println( "目录file = new File('E:\\javaio\\fengke')的默认路径:" +file.getPath()); |
System.out.println( "文件file3 = new File('日记2.txt')的默认路径:" +file3.getPath()); |
System.out.println( "*************文件与目录的操作**************" ); |
System.out.println( "输出目录名字:" +file.getName()); |
System.out.println( "输出文件名字:" +file2.getName()); |
System.out.println( "输出目录的上级目录" +file.getParent()); |
System.out.println( "输出文件的上级目录" +file2.getParent()); |
System.out.println( "输出文件的上级目录的绝对路径" +file.getParentFile().getAbsolutePath()); |
System.out.println( "file2文件是否隐藏:" +file2.isHidden()); |
/* |
* |
* window是大小写不敏感的,所以在windows上当文件不存在时,得到的路径就是按照输入的路径。 |
* 但当文件存在时,就会按照实际的情况来显示。 |
* 这也就是建立文件后和删除文件后会有不同的原因。文件夹和文件类似。 |
*/ |
//关于Windows中大小写问题 |
System.out.println( "================Windows中大小写问题==============" ); |
File file_windows = new File( "e:\\Text.txt" ); |
System.out.println(file_windows.getCanonicalPath()); |
//当用户没有文件text.txt时,输出结果为E:\Text.txt |
//当用户已经创建了文件text.txt,输出结果为E:\text.txt |
|
} |
} |