2015-10-13 70 views
0

使用java,我需要製作一個程序,詢問用戶要掃描哪個文件,並對文件中的數據進行一些操作。如何讓文件的內容被掃描和打印?

我的程序應該選擇一個文件,掃描文件中用戶指定的特定字符,並返回該文件中有多少特定字符。

這是到目前爲止我的代碼:

import java.io.*; 
import java.util.Scanner; 

public class CharSearch { 
    public static void main(String[] args) throws Exception{ 

    Scanner scanner = new Scanner(System.in); 

    System.out.println("Enter the name of the file you want to search."); 
    String fileInput = scanner.nextLine(); 

    System.out.println("What character would you like to look for in " + fileInput + "?"); 

    Scanner fileScanner = new Scanner(fileInput); 
    System.out.println(fileScanner); 
    } 
} 

我進口IO和掃描儀,然後設置掃描儀讀取哪個文件的用戶輸入。我打印出該文件名。最後兩行是我需要幫助的地方。如何使掃描儀返回文件中的數據。

我的文件夾中有一個名爲data.txt的文件,其中寫入的全是「dataWord」。對於初學者,我希望掃描儀讀取文件和程序以顯示dataWord,但它不起作用。我是菜鳥,所以請和我一起工作。謝謝。

+0

'fileScanner.nextLine()構造函數;'將獲得該文件的第一行和返回的一切該行作爲'String'來循環,只是做'while(fileScanner.hasNext())' – 3kings

+0

噢好吧,這很有幫助。有沒有辦法讓它恢復文件中的所有內容,僅用於未來目的? –

+0

看看Files.readAllLine(路徑)它返回一個列表' – 3kings

回答

0

而不是通過文件的路徑爲String將它作爲File

Scanner fileScanner = new Scanner(new File(fileInput)); 
    while (fileScanner.hasNext()) { 
     System.out.println(fileScanner.next()); 
    } 
    scanner.close(); 
    fileScanner.close(); 

如果該文件是一個外部文件,或沒有在你的項目,你可以指定文件的絕對路徑

如果是在類路徑中,你可以閱讀使用ClassLoader

 java.io.InputStream inputStream = this.getClassLoader().getResourceAsStream("file_path") 

掃描儀與InputStream

+0

我把它放入後,命令提示符表示它找不到我想要的文件。在與JAVA和CLASS文件相同的文件夾中,我輸入了文本文件data.txt,並將其輸入到fileInput位於代碼中的命令提示符中。我是否需要以特定方式指定文件的路徑,因爲我在我的USB上嘗試了M:\ data.txt文件所在的位置。什麼可能導致程序無法找到我的文件? –

+0

我在哪裏把java.io.InputStream東西放在我的代碼中?在這一點上我很迷茫。 –

+0

'掃描儀掃描儀=新掃描儀(inputStream)'希望這有助於,如果您面臨任何其他問題共享項目結構和.classpath – Saravana