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中有很多类可以用来读写文件:
FileReader、BufferedReader、Files、Scanner、FileInputStream、FileWriter、BufferedWriter、FileOutputStream等,可根据需要选择。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号