1

Sun Java サイトから取得したこのコードを実行しようとしています (コピーはしませんでした。コードを覚えるのに役立つので、それを見て書きました)。

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CharEx{
    FileReader inputStream = null;
        FileWriter outputStream = null;

    public static void main(String args[]) throws IOException{
        FileReader inputStream = null;
        FileWriter outputStream = null;

        try{
            inputStream = FileReader("xanadu.txt");
            outputStream = FileWriter("out.txt");
            int c;
            while ((c = inputStream.read()) != -1){
                outputStream(c);
            } 
        }
        finally{
            if(inputStream !=null){
                inputStream.close();
            }
            if(outputStream !=null){
                outputStream.close();
            }

        }
    }
}

しかし、次のエラーが発生します。

D:\Java>javac CharEx.java
CharEx.java:14: cannot find symbol
symbol  : method FileReader(java.lang.String)
location: class CharEx
                        inputStream = FileReader("xanadu.txt");
                                      ^
CharEx.java:15: cannot find symbol
symbol  : method FileWriter(java.lang.String)
location: class CharEx
                        outputStream = FileWriter("out.txt");
                                       ^
CharEx.java:18: cannot find symbol
symbol  : method outputStream(int)
location: class CharEx
                                outputStream(c);
                                ^
3 errors

FileReaderメッセージから、システムは内部を探していると思いますが、内部java.langを探す必要がありますjava.io.*:((

誰かが私が間違っているところを助けてくれますか?

PS: 私は JDK 1.5 を使用しています。

4

2 に答える 2

8

FileReaderaと aをインスタンス化しようとしています FileWriter(つまり、これらの型のオブジェクトを作成します)。

newそのためには、次のキーワードを使用する必要があります。

inputStream = new FileReader("xanadu.txt");
outputStream = new FileWriter("out.txt");

コードを省略するnewと、メソッド呼び出しのように見えるため、コンパイラはFileReader(and FileWriter) という名前のメソッドを探しますが、それが見つかりません。

ヒント: 「シンボル」とは、コンパイラが「名前」と呼ぶものです。その名前は、クラス、メソッド、変数などの名前にすることができます...「symbol:」行をチェックすると、正確な問題が見つかります。これは、コンパイラがパラメーターを受け取るメソッドを探すことを示しています。FileReaderString

CharEx.java:14: シンボルが見つかりません
symbol : メソッド FileReader(java.lang.String)
于 2011-07-06T12:35:50.623 に答える
3

newリーダーとライターを初期化するときにキーワードがありません。

inputStream = new FileReader("xanadu.txt");
outputStream = new FileWriter("out.txt");

この行にも何かが欠けています:

outputStream(c);

そこの出力ストリームに書き込みますか? 次に、これを試してください:

outputStream.write(c);
于 2011-07-06T12:39:18.620 に答える