2013-04-06 74 views
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

database_lotto.txt.txt?你确定它不应该是database_lotto.txt? – stevenelberger 2013-04-06 22:39:43

+1

是不是这个问题 - http://stackoverflow.com/questions/15854085/reading-a-file-from-the-computer – 2013-04-06 22:43:21

+0

即使与database_lotto.txt这是同样的问题。 – user1831131 2013-04-06 22:44:05

回答

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

你在Unix/Linux机器上吗?

这是更好地使用文件分割符,而不是\,因为文件分割符使用系统字符的目录(\在Win,/在Linux等)

使用File.exists()来检查如果有文件,在使用之前。

+0

**我正在使用Win7 ** – user1831131 2013-04-06 23:21:30

+0

然后双反斜杠应该可以工作。因此,你的路径似乎不正确。 – 2013-04-06 23:23:45

+0

**它没有工作:(** – user1831131 2013-04-06 23:38:38