从主机读取文件

时间:2013-04-06 22:38:57

标签: java

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

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");
    }

2 个答案:

答案 0 :(得分:0)

你是在Unix / Linux机器上吗?

最好使用File.separator而不是\,因为File.separator使用系统char作为目录(\ on Win,/ on Linux等)。

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

答案 1 :(得分: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 :(");
    }
}