-3

我有 3 种方法

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

但它不起作用。

4

1 回答 1

0

你期望它做什么,你没有对你读到的那行做任何事情,只是

m.readLine();

反而:

String result = m.readLine();

或使用output您保存的变量。

你想把它保存到一个变量中,打印它,把它写到另一个文件吗?

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

r = new FileReader(f);

bfr仍然如此null

你应该这样做:

bfr = new BufferedReader(new FileReader(f));
于 2012-05-06T20:17:32.040 回答