2011-10-18 54 views
-1

我有這樣的代碼,它從給定的文件路徑中讀取一個文件。 我已經硬編碼F://dom.txt。我需要用戶輸入該文件路徑。 我應該怎麼做?由於如何在FileReader上輸入filePath

import java.io.BufferedReader; 
import java.io.FileReader; 

public class BuffReader extends Converter { 

private static BufferedReader br() throws FileNotFoundException{ 
    return new BufferedReader(new FileReader("F://dom.txt")); //<--filepath 
} 


static String strTem; 

public static String readData(String Message){ 
    try{ 
     System.out.print(Message); 
     strTem = br().readLine(); 
    }catch(Exception e){ 
     System.err.println("Muling tingan ang iyong numerong ibinigay"); 
    } 
    return strTem; 
} 

}

回答

0

那麼你需要給文件名的奇怪的命名br()方法。例如:

private static BufferedReader br(String path) throws FileNotFoundException { 
    return new BufferedReader(new FileReader(path)); 
} 

public static String readData(String message){ 
    try{ 
     System.out.print(message); 
     strTem = br(message).readLine(); 
    }catch(Exception e){ 
     System.err.println("Muling tingan ang iyong numerong ibinigay"); 
    } 
    return strTem; 
} 

這是假設的參數readData實際上是要從讀取文件...否則,你需要在哪裏工作,你會得到從文件名。

(這將是一個好主意,對異常處理和命名工作,順便說一句。)

+0

我可能會誤解他,但我認爲他首先要問的是如何從用戶那裏獲得價值,而不是他在消息變量中獲得了價值。 – Thor84no

+0

@ Thor84no:你可能是對的。這是非常不明確的: –

+0

感謝您花時間回覆我需要的是用戶給出的文件路徑我的代碼只是硬編碼爲「F://dom.txt」用戶應該輸入希望命令提示符的路徑。thanksss :) – domdeleon

0

假設你指的是輸入應該來自控制檯(也有可能是命令行參數或GUI或無論你真的喜歡),那麼你應該可以使用System.console().readLine("prompt for input")

0

(假設它是獨立的)改變你的主要方法來讀取變量args [0]。

public static void main (String[] args) { 
    readData(Message, args[0]); 
} 

然後更改方法簽名readData()等等。基本上上面的代碼告訴你如何從命令行讀取一個字符串。

如果你問在節目中間:

您可以使用

System.console().readLine("Enter file name:) 

來獲取用戶輸入。

此外,我會建議將此文件保存在配置文件中,並從文件中讀取它,以便程序具有靈活性。

+0

這是一個由其他課程擴展的類。我只需要將我已經硬編碼的文件路徑F://dom.txt「設爲動態。用戶輸入的意義:)謝謝 – domdeleon

+0

您已經有了答案 - 兩次。 – Thor84no

+0

@domdeleon:你在閱讀答案? –