- PR -

catch処理でログファイルへ出力するには?

1
投稿者投稿内容
mmorishita
会議室デビュー日: 2008/10/27
投稿数: 6
投稿日時: 2008-10-29 12:28
JAVA初心者です。

catch処理でログの書き込みができません。
catch処理のfpでエラーが発生します。
同じログファイルの書き込みを try と catch 処理でも
使えるようにする方法がわかりません。

ご教示よろしくお願い致します。




// ファイル入出力
import java.io.*;

// 日付
import java.util.Calendar;
import java.util.Date;

public class TestOUT {
public static void main (String[] args) {

//ログファイルを開く
FileOutputStream fos = null;
BufferedWriter fp = null;


try {
//ログファイルの書き込み開始
fos = new FileOutputStream( "test.txt" , true );
fp = new BufferedWriter(new OutputStreamWriter(fos));

//ログファイルの書き込み開始

fp.write ("aaa");


//ログファイルの終了
fp.newLine();
fp.flush();
fp.close();
fos.flush();
fos.close();


}
catch (Exception ex) {

fos.write ("bbb");

//ログファイルの終了
fp.newLine();
fp.flush();
fp.close();
fos.flush();
fos.close();
}
}
}
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-10-29 12:58
fpができていなければ、fpに書き込んだらだめでしょう。
mmorishita
会議室デビュー日: 2008/10/27
投稿数: 6
投稿日時: 2008-10-29 13:08
mio様 ありがとうございます。

しかし、残念なことに
tryの外に書いても同じ結果でした。

ご教示よろしくお願い致します。



// ファイル入出力
import java.io.*;

// 日付
import java.util.Calendar;
import java.util.Date;

public class TestOUT {
public static void main (String[] args) {

//ログファイルを開く
FileOutputStream fos = null;
BufferedWriter fp = null;

//ログファイルの書き込み開始
fos = new FileOutputStream( "test.txt" , true );
fp = new BufferedWriter(new OutputStreamWriter(fos));




try {
//ログファイルの書き込み開始

fp.write ("aaa");


//ログファイルの終了
fp.newLine();
fp.flush();
fp.close();
fos.flush();
fos.close();


}
catch (Exception ex) {

fos.write ("bbb");

//ログファイルの終了
fp.newLine();
fp.flush();
fp.close();
fos.flush();
fos.close();
}
}
}
johnes
ベテラン
会議室デビュー日: 2007/11/21
投稿数: 50
投稿日時: 2008-10-29 13:24
catchの中で例外が出たらどうするの?って話です。
ご存知かもしれませんが、catchの中でもtry-catch構文は書けますよ。

あとここでコードを書くときはコードタグを使うことをお勧めします。
[code][/code](全部半角にして)でコードを囲むとよいです。
やんち
常連さん
会議室デビュー日: 2008/10/24
投稿数: 32
投稿日時: 2008-10-29 14:31
> catch処理のfpでエラーが発生します。
どんなエラーが発生しましたか?

●例外など出ているなら、それも上げてください。
その方が、解決へのヒントになるかもしれません。
> catch (Exception ex) {
例外をキャッチした後位に、
ex.printStackTrace();
とか出来ませんか?
未記入314032
会議室デビュー日: 2008/10/14
投稿数: 9
投稿日時: 2008-10-29 18:34
失礼を覚悟で一応確認しておきたいのですが、
コンパイルは通っているんですよね?

コード:
fos.write ("bbb");


とありますが、FileOutputStreamにStringを引数にとるようなwrite()メソッドはないと思います。

あと、main()に「throws IOException」が不足しているようにも思われます。
mmorishita
会議室デビュー日: 2008/10/27
投稿数: 6
投稿日時: 2008-10-29 19:36
皆様ありがとうございますm(_ _)m
返答遅れまして申し訳ございませんm(_ _)m

catchにtryを追加しなんとか解決することが出来ました。

ありがとうございました。
holic
ベテラン
会議室デビュー日: 2004/08/24
投稿数: 74
投稿日時: 2008-10-29 22:42
java.util.logging.Logger 使おうよ。
1

スキルアップ/キャリアアップ(JOB@IT)