-1
public class Demo
{
    public static void main(String[] args)
    {
        PrintWriter outputStream= null;
        try
        {
            outputStream = new PrintWriter (new BufferedWriter(new PrintWriter("text.txt")));
        }
        catch(FileNotFoundException e)
        {
            System.out.println("Error");
            System.exit(0);
        }
        finally {
                if (outputStream!= null)
                    outputStream.close(); 
        }


        outputStream.println("Hahahahaha");



    }
}

ということでサンプルコードをいただいたのですが、不思議なことにテキストファイルを開くと全く動きません。完全に空白です。それはどのように可能ですか?output.closeのせいですか?その部分をコメントアウトしましたが、まだ機能しません。

4

3 に答える 3

0

outputStream書き込む前に閉じています。

finallytry ブロックが終了すると、ブロックは常に実行されることに注意してください。したがって、ブロックoutputStreamを終了する前に書き込む必要があります。try

閉じると、入力したテキストが表示されます。

try
{
    outputStream = new PrintWriter (new BufferedWriter(new PrintWriter("text.txt")));
    outputStream.println("Hahahahaha");
}
catch(FileNotFoundException e)
{
    System.out.println("Error");
    System.exit(0);
}
finally {
    if(outputStream != null)
       outputStream.close();
}
于 2013-03-04T19:27:40.327 に答える
0

使用する理由:

outputStream = new PrintWriter (new BufferedWriter(new PrintWriter("text.txt")));

なぜ使用しないのですか:

PrintWriter outputStream = new PrintWriter("text.txt");

于 2013-03-04T19:26:22.250 に答える
0

ストリームを閉じる前に println ステートメントを記述します

public class Demo
{
    public static void main(String[] args)
    {
        PrintWriter outputStream = null;
        try
        {
            outputStream = new PrintWriter (new BufferedWriter(new PrintWriter("text.txt")));
        outputStream.println("Hahahahaha");
        }
        catch(FileNotFoundException e)
        {
            System.out.println("Error");
            System.exit(0);
        }
        finally {
                if (outputStream != null)
                    outputStream.close(); 
        }
    }
}
于 2013-03-04T19:26:24.313 に答える