FileReader和BufferedReader

时间:2012-05-06 20:11:07

标签: java bufferedreader filereader

我有3种方法

  1. 用于打开文件
  2. 读取文件
  3. 返回的内容阅读方法阅读
  4. 这是我的代码:

    /*
     * 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();
        } 
    }
    

    但它不起作用。

1 个答案:

答案 0 :(得分:0)

您期望它做什么,您没有对您阅读的行做任何事情,只是

m.readLine();

相反:

String result = m.readLine();

或使用您保存的output变量。

是否要将其保存到变量,打印,将其写入另一个文件?

更新:在评论中更新后: 永远不会创建/初始化您的变量bfr。你只是这样做:

r = new FileReader(f);

所以bfr仍为null

你应该做这样的事情:

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