java中File类中的常用的方法

1.创建
 boolean createNewFile();在指定路径创建文件,如果文件已经存在,则不创建,返回false.输出流
                         对象一旦创建,如果文件存在,则会覆盖。
 boolean mkdir():创建一级文件夹
 boolean mkdirs():创建多级文件夹

调用该类的一个方法createNewFile(),但是在实际操作中需要注意一些事项,如判断文件是否存在,以及如何向新建文件中写入数据等。

 代码如下 复制代码

import java.io.*;
public class CreateNewFile{
 //创建一个方法完成创建文件的目的,文件的第一个参数是文件路径和文件名,第二个参数是文件内容
 //如:myfile.doc  HelloJava!
 public void createNewFile(String fileDirectoryAndName,String fileContent){
  try{
   String fileName = fileDirectoryAndName;
   //创建File对象,参数为String类型,表示目录名
   File myFile = new File(fileName);
   //判断文件是否存在,如果不存在则调用createNewFile()方法创建新目录,否则跳至异常处理代码
   if(!myFile.exists())
    myFile.createNewFile();
   else  //如果不存在则扔出异常
    throw new Exception("The new file already exists!");
   //下面把数据写入创建的文件,首先新建文件名为参数创建FileWriter对象
   FileWriter resultFile = new FileWriter(myFile);
   //把该对象包装进PrinterWriter对象
   PrintWriter myNewFile = new PrintWriter(resultFile);
   //再通过PrinterWriter对象的println()方法把字符串数据写入新建文件
   myNewFile.println(fileContent);
   resultFile.close();   //关闭文件写入流
  }catch(Exception ex){
   System.out.println("无法创建新文件!");
   ex.printStackTrace();
  }
 }
 public static void main(String[] args){
  //创建类的对象并调用该对象的createNewFile()方法,创建新文件并写入数据
  CreateNewFile createFile = new CreateNewFile();
  createFile.createNewFile(args[0],args[1]);
 }
}

执行该程序,在执行代码后直接输入两个参数,第一个参数是文件名,此时需要注明文件类型,这里创建的word文档;第二个参数是文件的内容,该参数是一个字符串数据

2.删除
    boolean delete():删除失败返回假。如果文件正在使用,则删除不了返回false
    void deleteOnExit():程序退出时删除文件
3.判断
    boolean exists():判断文件是否存在
    isFile();
    isDirectory();
    isHidden();
    isAbsolute();
4.获取信息
 getName();
 getPahth();//获取路径
 getAbsoluteFile();//获取绝对路径封装成文件对象
 getAbsolutPath();//获取绝对路径
 getParent();
 lastModified();
 length();

 getParent();//该方法返回的是绝对路径中的父目录,如果获取的是相对路径,返回null.
             //如果相对路径中有一级目录,那么该目录就是返回结果
 renameto()

 代码如下 复制代码

package com.day20.wd;

import java.io.File;
import java.io.IOException;

public class IODemo {

    /**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
  
    }
    private static void method_04() {
        File f=new File("abc\test.java");
        sop(f.getAbsolutePath());
        sop(f.getParent());//该方法返回的是绝对路径中的父目录。如果获取的是相对路径,返回null。
                           //如果相对路径中有上一层目录该目录就是返回结果
        sop(f.getAbsoluteFile());
        File  f2=new File("c:\test.java");
        sop("rename"+f.renameTo(f2));
    }
    private static void method_03() {
        File   f= new File("G:\sdd\sssf\ssf");
         sop("isabsolute"+f.isAbsolute());
         sop(f.getAbsolutePath());
         sop(f.mkdir());
         sop(f.exists());
    }
    private static void method_02() throws IOException {
        File  f=new File("a.txt");
          f.deleteOnExit();//程序退出删除文件
          if(f.exists()) //判断文件是否存在
              f.delete();//删除
          sop(f.getAbsoluteFile());//绝对路径
          sop(f.createNewFile());//创建文件,返回boolean值,如true,创建,如果已存在,那么返回false
          sop(f.createNewFile());
    }
    public static void method__01(){
          //将a.txt封装成File对象,可以将已有的和未出现的文件或者文件夹封装成对象
          File  f=new File("a.txt");
          sop(f.getAbsoluteFile());
          File  f1=new File("d:\abc","a.txt");
          sop(f1.getAbsoluteFile());
          File f2=new File("d:\abc");
          File f3=new File(f2,"a.txt");
          sop(f3);
          //separator目录分割符,可以实现跨平台
    }
    public static void sop(Object e){
        System.out.println(e);
    }
    
}

相关文件操作

在java中File类是唯一可以直接操作文件的类:

一、创建文件

 代码如下 复制代码

FileDemo01.java:

import java.io.File;

import java.io.IOException;

public class FileDemo01

{

public static void main(String args[])

{

File f = new File("e:"+File.separator+"abc.txt");//声明File类的对象

try

{

f.createNewFile();//根据给定的路径创建文件

}

catch (IOException e)//进行异常的捕获打印输出

{

e.printStackTrace();

}

}

}

 

 

2.删除文件:

 代码如下 复制代码

FileDemo02.java

import java.io.File;

public class FileDemo02

{

public static void main(String args[])

{

File f = new File("e:"+File.separator+"abc.txt");

f.delete();//删除文件

}

}

 

 

3.如果文件存在则删除,如果不存在则创建

 代码如下 复制代码

FileDemo03.java:

import java.io.File;

import java.io.IOException;

public class FileDemo03

{

public static void main(String args[])

{

File f = new File("e:"+File.separator+"abc.txt");

/*

如果文件存在则删除文件,如果不存在则创建文件

*/

if(f.exists())

{

f.delete();//删除文件

}

else

{

try

{

f.createNewFile();//创建文件

}

catch (IOException e)

{

e.printStackTrace();

}

}

}

}

4.创建文件夹

 代码如下 复制代码

FileDemo04.java:

import java.io.File;

public class FileDemo04

{

public static void main(String args[])

{

File f = new File("e:"+File.separator+"nwpu");

f.mkdir();

}

}

 

 

5.列出文件(列出的只是文件名)

 代码如下 复制代码

FileDemo05.java:

import java.io.File;

public class FileDemo05

{

public static void main(String args[])

{

File f = new File("e:"+File.separator);//实例化File类的对象

String str [] = f.list();//列出文件,返回一个str数组

for (int i=0;i<str.length;i++)//循环输出文件,看输出的是文件的什么内容

{

System.out.println(str[i]);

}

}

}

 

6.列出文件(listFiles()方法可以列出文件的路径)

 代码如下 复制代码

FileDemo06.java:

import java.io.File;

public class FileDemo06

{

public static void main(String args[])

{

File f = new File("e:"+File.separator);//实例化File类的对象

File files[] = f.listFiles();//列出文件

for (int i=0;i<files.length;i++)

{

System.out.println(files[i]);//调用toString 方法打印输出看看输出信息

}

}

}

 

7.判断是否为目录:(isDirectory()方法)

 代码如下 复制代码

FileDemo07.java:

import java.io.File;

public class FileDemo07

{

public static void main(String args[])

{

File f = new File("e:"+File.separator);//实例化File类的对象

if(f.isDirectory())

{

System.out.println(f.getPath()+"是目录!");

}

else

{

System.out.println(f.getPath()+"不是目录!");

}

}

}

 

8.列出给定目录中的所以内容(如果有子目录则列出子目录中的所以内容)

 代码如下 复制代码

FileDemo08.java:

 

import java.io.File;

public class FileDemo08

{

public static void main(String args[])

{

File f = new File("e:"+File.separator);//实例化File类的对象

printFile(f);

}

public static void printFile(File f)

{

if(f!=null)//判断文件是否为空

{

if(f.isDirectory())//判断文件是否为文件夹

{

File files[] = f.listFiles();//列出文件

if(files!=null)

{//判断此目录能否列出

for(int i=0;i<files.length;i++)

{

printFile(files[i]);//递归调用判断是否为子文件夹

}

}

}

else

{

System.out.println(f);

}

}

}

}

时间: 2024-11-01 19:17:02

java中File类中的常用的方法的相关文章

Java利用File类中rename()移动文件

package cn.com; import java.io.File; //问题描述: 移动文件 //注意: //1 移动后原path下的文件夹将保留 //2 但文件夹下的文件将不会再存在 //3 若是目录则要递归调用该方法 //4 核心是调用File中renameTo()方法 public class FileTest { public static void main(String[] args) { FileTest fileTest=new FileTest(); fileTest.m

关于java中File类小问题

问题描述 关于java中File类小问题 File f2 = new File("c:abc","b.txt"); f2.createNewFile(); 为什么以上代码同时执行会报错? 解决方案 java 小问题Java小问题java中的小问题 解决方案二: 你的abc目录存在吗 解决方案三: 总感觉应该来个if 是否存在 的判断比较好,而且还要处理异常 解决方案四: 先判断一下是否存在,然后在创建.应该就可以了. 解决方案五: 报错信息放下来看看 new Fil

win32-eclipse中File类程序运行报错

问题描述 eclipse中File类程序运行报错 程序如下: package nmd; import java.io.File; public class FileHello { public static void main(String[] args) { try { Runtime ec=Runtime.getRuntime(); File file=new File("file.txt"); ec.exec(file.getAbsolutePath()); } catch (E

java数据流DataInputstream类中的方法readBoolean()的作用是什么?

问题描述 java数据流DataInputstream类中的方法readBoolean()的作用是什么? 书上说readBoolean()的作用是读取一个布尔值,但是具体是 根据什么得到布尔值的?这个布尔值可以用于什么操作?跪求指点! 解决方案 从输入流读取,如果是0,就是false,否则就是true,bool值可以用来做逻辑判断. 解决方案二: 你写进去的时候的那个值,但需要顺序读取,写入时,第一个如果是int,那就读取时就要readInt,类似这样 解决方案三: JAVA中String类的i

Java中获取类路径classpath的简单方法(推荐)_java

如下所示: <SPAN style="FONT-SIZE: 18px"> System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("java.class.path"); String path2 = FreeMarkerWriter.class.getProtectionDomain().getCodeSource().getLo

class-为什么说java中一个类中定义两个构造函数。

问题描述 为什么说java中一个类中定义两个构造函数. 为什么说java中一个类中定义两个构造函数.是不是意思就是一个是无参构造函数,一个是有参数的构造函数, 解决方案 构造函数可以定义很多个,如同函数重载,只要参数个数类型不同就可以. 因此无参构造函数只能有一个.至于定义2个,可以是一个无参,一个有参,也可以是2个有参. 解决方案二: oh no, an object can have multiple constructors with different parameters. 解决方案三

关于java的swing类中的顶层容器

问题描述 关于java的swing类中的顶层容器 在java中 顶层容器类可不可以包含在其他容器中 比如说JDialog类是顶层容器类这个可不可以放在其他容器中?那JApplet类呢? 解决方案 Swing提供3种顶层容器类:JFrame,JDialog,JApplet.所以,JApplet也是不可以放在其他容器中的.

教你在Java的普通类中轻松获取Session以及request中保存的值

  曾经有多少人因为不知如何在业务类中获取自己在Action或页面上保存在Session中值,当然也包括我,但是本人已经学到一种办法可以解决这个问题,来分享下,希望对你有多多少少的帮助!   如何在Java的普通类中获取Session以及request对象 详细回答请见:http://www.zhangriguang.cn/blog/20121010123838.html

成员函数-c++中关于类中的函数一些疑问

问题描述 c++中关于类中的函数一些疑问 1.网上看见两种说法,一个是函数放在code area 另一个是instruction area 请问两者一样吗,还是有什么区别 2.创建的对象中是不是有一个指针指向放在那个area的函数,那么函数在那个区域又是怎么存放的呢 3.使用拷贝构造函数的时候,怎么把成员函数拷贝过去,构造函数也要拷贝过去吗 4.创建对象用的是构造函数,那么对象创建好了之后,对象所在的内存中还有构造函数吗(就是说对象还可以使用够早函数吗) 5.还有我想知道,类的域 就是四个点,在