Java 文件
阅读原文时间:2023年07月15日阅读:1


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等,可根据需要选择。