2012-05-06 38 views
-3

我有3種方法的FileReader和BufferedReader

  1. 開放文件
  2. 讀文件
  3. 在方法讀回事情讀

這是我的代碼:

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package javaapplication56; 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.io.IOException; 
import java.rmi.RemoteException; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

/** 
* 
* @author x 
*/ 
public class RemoteFileObjectImpl extends java.rmi.server.UnicastRemoteObject implements RemoteFileObject 
{ 
    public RemoteFileObjectImpl() throws java.rmi.RemoteException { 
     super(); 
    } 

    File f = null; 
    FileReader r = null; 
    BufferedReader bfr = null; 

    String output = ""; 
    public void open(String fileName) { 
     //To read file passWord 
     f = new File(fileName); 
    } 
    public String readLine() { 
     try { 
      String temp = ""; 
      String newLine = System.getProperty("line.separator"); 
      r = new FileReader(f); 
      while ((temp = bfr.readLine()) != null) { 
       output += temp + newLine; 
       bfr.close(); 
      } 
     } 
     catch (IOException ex) { 
      ex.printStackTrace(); 
     } 

     return output; 
    } 

    public void close() { 
     try { 
      bfr.close(); 
     } catch (IOException ex) { 
     } 
    } 

    public static void main(String[]args) throws RemoteException{ 
     RemoteFileObjectImpl m = new RemoteFileObjectImpl(); 
     m.open("C:\\Users\\x\\Documents\\txt.txt"); 
     m.readLine(); 
     m.close(); 
    } 
} 

但它不起作用。

+5

「不工作」是不夠的。解釋你所期望的和你得到的。 – chr

+0

當Ran和我的工作不知道爲什麼時,出現這些錯誤。 異常線程 「main」 顯示java.lang.NullPointerException \t在javaapplication56.RemoteFileObjectImpl.readLine(RemoteFileObjectImpl.java:51) \t在javaapplication56.RemoteFileObjectImpl.main(RemoteFileObjectImpl.java:73) – Seetah

+2

還是那句話:你是怎麼預計會發生,而發生了什麼呢? –

回答

0

你期望它做的,你是不是做你看行什麼,只是

m.readLine(); 

相反:

String result = m.readLine(); 

或使用您保存的output變量。

你想將它保存到一個變量,打印它,寫入另一個文件?

更新:在您的意見更新後: 您的變量bfr永遠不會被創建/初始化。你只是這樣做:

r = new FileReader(f); 

所以bfr仍然null

你應該做這樣的事情,而不是:

bfr = new BufferedReader(new FileReader(f)); 
+0

'r =新的FileReader(f);'這樣就少了一步。 – Neil

+0

Thanks for all 我們成功地解決了代碼 – Seetah

+0

嗯,@neil雖然代碼沒有使用'r',但它使用'bfr',所以你最好改變它或者初始化'bfr'。除了'FileReader'沒有'readLine','BufferedReader'呢。 –

相關問題