Java 文件

Java文件

java.io包中的File类,用于处理文件。

使用File类,创建该类的对象,并指定文件名或目录名:

示例

import java.io.File;  // 导入File类

File myObj = new File("filename.txt"); // 指定文件名

File类有许多方法,如下表:

方法 返回值类型 描述
canRead() Boolean 测试文件是否可读
canWrite() Boolean 测试文件是否可写
createNewFile() Boolean 创建一个空文件
delete() Boolean 删除一个文件
exists() Boolean 测试文件是否存在
getName() String 返回文件的名称
getAbsolutePath() String 返回文件的绝对路径
length() Long 返回文件大小(以字节为单位)
list() String[] 返回目录中文件的数组
mkdir() Boolean 创建一个目录

如果你不知道“包”是什么,请参考我们的Java包教程

创建文件

可使用createNewFile()方法创建一个文件。这个方法返回一个布尔值: 如果文件创建成功,返回true; 如果文件已经存在,返回false。

注意,关于文件的操作,通常应该包含在一个try…catch块,如果发生错误(如由于某种原因无法创建文件),会抛出IOException:

示例

import java.io.File;  // 导入File类
import java.io.IOException;  // 导入IOException类来处理错误

public class CreateFile { 
  public static void main(String[] args) { 
    try { 
      File myObj = new File("filename.txt"); 
      if (myObj.createNewFile()) { 
        System.out.println("创建文件: " + myObj.getName()); 
      } else { 
        System.out.println("文件已经存在"); 
      } 
    } catch (IOException e) {
      System.out.println("出错了");
      e.printStackTrace(); 
    } 
  } 
}

输出将为:

创建文件: filename.txt

可以指定路径创建文件(需要权限)。对于Windows,使用双反斜杠转义“\”字符,对于Mac和Linux上,可以直接写路径,比如:/Users/name/filename.txt

示例

File myObj = new File("C:\\Users\\MyName\\filename.txt");

获取文件信息

可以通过File类的方法,获取文件信息:

示例

import java.io.File; 

public class GetFileInfo { 
  public static void main(String[] args) { 
    File myObj = new File("filename.txt");
    if (myObj.exists()) {
      System.out.println("文件名: " + myObj.getName()); 
      System.out.println("绝对路径: " + myObj.getAbsolutePath()); 
      System.out.println("可写: " + myObj.canWrite()); 
      System.out.println("可读: " + myObj.canRead()); 
      System.out.println("文件大小(字节): " + myObj.length());
    } else {
      System.out.println("文件不存在");
    }
  } 
}

输出将为:

文件名: filename.txt
绝对路径: C:\Users\MyName\filename.txt
可写: true
可读: true
文件大小(字节): 0

写入文件

下面的示例中,使用FileWriter类的write()方法,将一些文本写入文件。注意,写完文件后,应该使用close()方法关闭文件:

示例

import java.io.FileWriter;   // 导入FileWriter类
import java.io.IOException;  // 导入IOException类来处理错误

public class WriteToFile { 
  public static void main(String[] args) { 
    try { 
      FileWriter myWriter = new FileWriter("filename.txt");
      myWriter.write("奇客谷教程 - 精品编程教程与实例");
      myWriter.close();
      System.out.println("成功写入文件");
    } catch (IOException e) {
      System.out.println("出错了");
      e.printStackTrace();
    } 
  } 
}

输出将为:

成功写入文件

读取文件

下面的例子中,使用Scanner类来读取文件内容:

示例

import java.io.File;  // 导入File类
import java.io.FileNotFoundException;  // 导入这个类来处理错误
import java.util.Scanner; // 导入Scanner类来读取文本文件

public class ReadFile { 
  public static void main(String[] args) { 
    try {
      File myObj = new File("filename.txt");
      Scanner myReader = new Scanner(myObj); 
      while (myReader.hasNextLine()) {
        String data = myReader.nextLine();
        System.out.println(data);
      }
      myReader.close();
    } catch (FileNotFoundException e) {
      System.out.println("出错了");
      e.printStackTrace();
    } 
  } 
}

输出将为:

奇客谷教程 - 精品编程教程与实例

注意: Java API中有很多类可以用来读写文件: FileReaderBufferedReaderFilesScannerFileInputStreamFileWriterBufferedWriterFileOutputStream等,可根据需要选择。



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载