0

我正在尝试从与源代码位于同一文件夹中的计算机中读取文件,当我运行代码时说:文件不存在你能帮帮我吗?

import java.io.*;
import java.util.*;
public class Lotto1 {
  static String[][] arr;
  static String name, number;
  public static void main(String[] args) throws IOException {
    File f = new File("D:\\Filipe\\Project Final\\src\\database_lotto.txt.txt");
    Scanner s;
    try {
      s = new Scanner(f);
      BufferedReader reader = new BufferedReader(new FileReader(f));
      int lines = 0;
      while(reader.readLine() != null) {
        lines++;
      }
      reader.close();
      arr = new String[lines][3];
      int count = 0;
      //while theres still another line
      while(s.hasNextLine()) {
        arr[count][0] = s.next() + "" + s.next();
        arr[count][1] = s.next();
        arr[count][2] = s.next();
        count++;
      }
    } catch(FileNotFoundException ex) {
      System.out.println("File does not exist");
    }
4

2 回答 2

0

你在 Unix/Linux 机器上吗?

最好使用 File.separator 而不是 \,因为 File.separator 使用系统字符作为目录(Win 上的 \,Linux 上的 / 等)

在使用之前使用 File.exists() 检查文件是否存在。

于 2013-04-06T22:58:15.517 回答
0

我已经推断出您要执行的操作并对其进行了重新编码,但是如果文件在您所说的位置,则此实现将读取该文件。

public static void main(String[] args) {
    final String filename = "database_lotto.txt";
    final File lottoFile = new File(filename);

    try (final Scanner scanner = new Scanner(lottoFile)) {
        final List<String[]> storage = new ArrayList<String[]>();
        while (scanner.hasNextLine()) {
            storage.add(scanner.nextLine().split(" "));
        }
    }catch (FileNotFoundException ex) {
        System.out.println("File not found :(");
    }
}
于 2013-04-06T23:09:58.697 回答