-3

私は3つの方法を持っています

  1. 開いているファイルの
  2. 読み取りファイル用
  3. メソッド read で読み込まれたものを返す

この私のコード:

/*
 * 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 に答える