2017-02-05 103 views
-4

所以我試圖讓我的名字的字符串文件打開,但是當我運行它時什麼也沒有發生。沒有錯誤就是沒有。java試圖讓文件打開

package test; 

import java.io.File; 
import java.util.Scanner; 

public class file { 

    private Scanner x; 

    public void openFile(){ 
     try{ 
      x = new Scanner(new File("Names.txt")); 
     } 
     catch(Exception e){ 
      System.out.println("No file"); 
     } 
    } 

    public void readFile(){ 
     while(x.hasNext()); 
     String a = x.next(); 
     System.out.printf("%s" ,x); 
    } 

    public void closeFile(){ 
     x.close(); 
    } 
} 

package test; 

public class main { 

    public static void main(String[] args){ 
    file file = new file(); 


    file.openFile(); 
    file.readFile(); 
    file.closeFile(); 


    } 

} 

這是兩個班我做了。一個與方法和另一個類調用這些方法。我有我在做的事情導致文件不能打開?或者當你們嘗試運行它時它會工作嗎?謝謝。

+4

請找到一個教程,並學習如何編寫一個'while'循環。 – ajb

+0

你爲什麼要打印x,而不是?而你的while循環有一個分號,它不會運行你的想法 –

+0

@ cricket_007不,不是真的(即「可能重複」的評論)。該問題涉及無法找到該文件的錯誤。這個程序中的錯誤是不同的,事實上與如何使用掃描儀方法無關。 – ajb

回答

0

你需要做的是刪除;在while循環結束時 這種東西。

while(x.hasNext()){ 
    String a = x.next(); 
    System.out.printf("%s" ,x); 
} 
0

while循環中READFILE只是運行本身不會因semicolumn代碼的下面一行試着加括號像

public void readFile(){ 
    while(x.hasNext()){ 
    String a = x.next(); 
    System.out.printf("%s" ,a); 
    } 
} 
0

你有隻是一個小問題,命名變量。 下的x代替areadFile要打印值,它只是改變

public void readFile(){ 
       while(x.hasNext()){ 
        String a = x.next(); 
        System.out.printf("%s" ,a); 
       } 
      }