文件操作

Java文件操作的学习总结:

1.文件
1.标准文件:就像图片,音乐文件等。
2.目录文件:也就是平常所说的文件夹。
3.虚拟内存文件:系统在运行程序时生成的临时性文件。

2.文件的路径
1.相对路径:相对于某一文件的路径,形象地说是把两文件的绝对路径相同的部分砍掉,剩下的就是相对路径
如:
  A文件是"D:\My Documents\StudySample\src\cn\xmh",
  B文件是"D:\My Documents\StudySample\src\netjava\cjl",
  则B相对A的路径是"\netjava\cjl";
2.绝度路径:从磁盘根目录算起的路径名
  如:"G:\TDDOWNLOAD\数据结构"。

3.File是一个类,位于java.io包中。我们可以用File类创建文件对象,并对文件对象进行各种操作,如读写数据。

4.File类中的构造器以及各种方法
1.构造器

  1.最常用的一种,根据字符串型的路径名创建文件对象
  File(String pathname)
  示例:

Java代码 复制代码 收藏代码
  1. String path = "D:\\My Documents\\StudySample"
  2. java.io.File file = new java.io.File(path); 
String path = "D:\\My Documents\\StudySample";
java.io.File file = new java.io.File(path);


    2.在一个父目录对象下面创建一个名字为child的文件对象,child为要创建的文件的名字
  File(File parent,String child)//这里的parent是File类型的,也就是说它是文件对象
  File(String parent,String child)//这里的parent是String类型的,它代表的是父目录的路径

2.文件对象操作方法
  1.exists():判断File对象指向的文件是否存在,返回一个boolean类型的值,true或者false。
  2.isDirectory():判断File对象指向的文件是否为目录,返回一个boolean类型的值,true或者false。
  3.isFile():判断File对象指向的文件是否是标准文件,返回一个boolean类型的值,true或者false。
  4.getName():获取文件的名字(不带文件的路径),返回的是String类型的值。
  5.length():得到File对象指向文件的长度,以字节计算,返回一个长整形的值(long);
   注意:在系统中,文件夹(目录)的大小为零,也就是不占用空间,使用length()时返回的是0
  6.mkdir():根据File对象的名字(路径)创建一个目录(文件夹),如果是相对目录,则新建的目录在当前目录下
   如在工程StudySample中运行
   String path = "study";
   java.io.File file = new java.io.File(path);
   file.createNewFile();
   这样就会在StudySample目录下创建一个名为"study"的文件夹(目录)。
   如果已经存在同名的文件,则抛出异常信息。
  7.mkdirs():如果File对象名字有多级目录,则可以调用该方法一次性创建多级目录。
  8.createNewFile():用来创建标准文件的方法
   如下示例:
  

Java代码 复制代码 收藏代码
  1. String path = "D:\\My Documents\\StudySample\\test.txt"
  2. java.io.File file = new java.io.File(path); 
  3. file.createNewFile(); 
String path = "D:\\My Documents\\StudySample\\test.txt";
java.io.File file = new java.io.File(path);
file.createNewFile();

    这样就会在"D:\My Documents\StudySample"目录下创建一个名为"test.txt"的记事本。
  9.delete():调用该方法可以删除File对象所指向的文件。
 
5.文件的操作实例:

Java代码 复制代码 收藏代码
  1. import java.io.File; 
  2.  
  3. public class FileExercise { 
  4.  
  5. /**
  6.   * @param args
  7.   */ 
  8. public static void main(String[] args) throws Exception { 
  9.   System.out.println("当前操作系统的名称分隔符是:" + java.io.File.separator); 
  10.   System.out.println("当前操作系统的路径分隔符是:" + java.io.File.pathSeparator); 
  11.   // 字符串类型的文件名 
  12.   String fileName = "xiong.txt"
  13.   // 实例化文件对象 
  14.   java.io.File file = new java.io.File("src", fileName); 
  15.   java.io.File file1 = new java.io.File( 
  16.     "D:\\My Documents\\StudySample\\src\\xiong"); 
  17.   java.io.File file2 = new java.io.File( 
  18.     "D:\\My Documents\\StudySample\\src"); 
  19.   // 创建一个文件 
  20.   file.createNewFile(); 
  21.  
  22.   boolean b;// 申明一个boolean类型的变量 
  23.  
  24.   // 测试应用程序是否可以执行该文件 
  25.   b = file.canExecute(); 
  26.   System.out.println("测试应用程序是否可以执行该文件" + b); 
  27.  
  28.   // 测试用用程序是否可以读取该文件 
  29.   b = file.canRead(); 
  30.   System.out.println("测试用用程序是否可以读取该文件" + b); 
  31.  
  32.   // 测试用用程序是否可以修改该文件 
  33.   b = file.canWrite(); 
  34.   System.out.println("测试用用程序是否可以修改该文件" + b); 
  35.  
  36.   // 测试此抽象路径名表示的文件或目录是否存在。 
  37.   b = file.exists(); 
  38.   System.out.println("测试此抽象路径名表示的文件或目录是否存在" + b); 
  39.  
  40.   // 按字母顺序比较两个抽象路径名 
  41.   int i = file.compareTo(file1); 
  42.   System.out.println(i); 
  43.  
  44.   String path; 
  45.   // 返回此抽象路径名的绝对路径名字符串 
  46.   path = file.getAbsolutePath(); 
  47.   System.out.println(path); 
  48.  
  49.   // 返回此抽象路径名的规范路径名字符串 
  50.   path = file.getCanonicalPath(); 
  51.   System.out.println(path); 
  52.  
  53.   long free; 
  54.   // 返回此抽象路径名指定的分区中未分配的字节数 
  55.   free = file.getFreeSpace(); 
  56.   System.out.println("此抽象路径名指定的分区中未分配的字节数" + free); 
  57.  
  58.   // 返回由此抽象路径名表示的文件或目录的名称 
  59.   String name; 
  60.   name = file.getName(); 
  61.   System.out.println(name); 
  62.   name = file1.getName(); 
  63.   System.out.println(name); 
  64.  
  65.   // 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null 
  66.   String parentpath; 
  67.   parentpath = file.getParent(); 
  68.   System.out.println(parentpath); 
  69.   parentpath = file1.getParent(); 
  70.   System.out.println(parentpath); 
  71.  
  72.   // 返回此抽象路径名指定的分区上可用于此虚拟机的字节数 
  73.   free = file.getUsableSpace(); 
  74.   System.out.println("此抽象路径名指定的分区上可用于此虚拟机的字节数" + free); 
  75.  
  76.   // 计算此抽象路径名的哈希码 
  77.   i = file.hashCode(); 
  78.   System.out.println(i); 
  79.  
  80.   // 测试此抽象路径名是否为绝对路径名 
  81.   b = file.isAbsolute(); 
  82.   System.out.println("file对象的抽象路径名是否为绝对路径名:" + b); 
  83.   b = file1.isAbsolute(); 
  84.   System.out.println("file1对象的抽象路径名是否为绝对路径名:" + b); 
  85.  
  86.   // 返回此抽象路径名表示的文件最后一次被修改的时间 
  87.   long time = file.lastModified(); 
  88.   System.out.println(time); 
  89.  
  90.   // 返回由此抽象路径名表示的文件的长度 
  91.   long length = file.length(); 
  92.   System.out.println("文件的长度:" + length); 
  93.  
  94.   // list()-->返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录 
  95.   String[] array = file2.list(); 
  96.   for (i = 0; i < array.length; i++) { 
  97.    System.out.println(array[i]); 
  98.   } 
  99.  
  100.   // listFiles()-->返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件 
  101.   java.io.File[] array1 = file2.listFiles(); 
  102.   for (i = 0; i < array1.length; i++) { 
  103.    System.out.println(array1[i]); 
  104.   } 
  105.  
  106.   // listRoots()-->列出可用的文件系统根,静态方法 
  107.   java.io.File[] roots = File.listRoots(); 
  108.   for (i = 0; i < roots.length; i++) { 
  109.    System.out.println(roots[i]); 
  110.   } 
  111.   // 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 
  112.   // file.deleteOnExit(); 
  113.    
  114.   //创建此抽象路径名指定的目录 
  115.   file1.mkdir(); 
  116.   //重新命名此抽象路径名表示的文件 
  117.   java.io.File file4 = new java.io.File("src\\重命名文件"); 
  118.   System.out.println(file1.renameTo(file4)); 
  119.   //设置文件只读 
  120.   file.setReadOnly(); 
  121.   //设置文件可写 
  122.   file.setWritable(true); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值