2012-05-30 22 views
1

我想通過下面的程序代碼的Java

public void actionPerformed(ActionEvent e) 
{ 
    else if(e.getSource() == menyFlikTre) 
    { 
     läsInFil(textFalt.getText()); 
    }  


private void läsInFil(String filename) 
{ 
    try { 
     FileReader r = new FileReader(filename); 
     textArea.read(r, null); 
    } 
    catch(IOException e){} 
} 

當我把擴展名爲.txt的文件名來打開文件輸入流,它只會增加文件的全名,包括擴展名爲.txt而不是文件的內容。

+0

恐怕這根本是不可能的你向我們展示的代碼。請確保你正在運行的代碼與你正在查看的代碼相同 - 你可能已經混淆了多個版本的東西,或修改代碼而不編譯它等。另外,*從不*使用空的​​catch像這樣的塊 - 總是至少包含對異常對象上的'printStackTrace()'的調用,所以你知道是否有錯誤發生。 –

+0

在läsInFil中有這個特殊的'ä'字符可以嗎?我從來沒有見過,所以我只是想我會指出。 – kentcdodds

+0

我剛剛經歷了其餘的代碼,它是無關的... –

回答

0

您應該循環徹底文件的內容並把它添加到textarea的:

FileReader fr = new FileReader(filename); 
BufferedReader br = new BufferedReader(fr); 
String s; 
while((s = br.readLine()) != null) { 
// write to textArea 
} 
+0

使用'JEditorPane.read()'沒有什麼錯誤。 –

+0

我可以將你的代碼行添加到我的try catch語句中嗎? –

+0

@JohnnyHankgard,你可以添加任何你想要的try catch語句。我的意思是,這是允許的,將編譯:) – kentcdodds

0
private void läsInFil(String filename) 
{ 
    try { 
     File file = new File(filename); 
     FileReader r = new FileReader(filename); 
     char[] buf = new char[(int)file.length()]; 
     r.read(buf); 
     String contentString = new String(buf); 
     textArea.append(contentString); 
    } 
    catch(IOException e){ 
e.printStacktrace(); 
} 
    } 
+0

即時通訊的內容字符串上的錯誤? –

+0

@JohnnyHankgard - 使用'String contentString = new String(buf);'它應該工作。 –

+0

對不起,我沒有聲明該變種。請做到這一點:),edsited回答 – Kris