• 締切済み

setOutputStreamの使用について

sdk1.4.2を使用しております。 StreamHandler.setOutputStream(OutputStream out) 上記setOutputStreamを使用したいと思っておりますが、 「メソッド setOutputStream(OutputStream) は型 StreamHandler で不可視です。」 というエラーが表示されてしまいます。 setEncoding()、.setErrorManager()等は問題なく使用できます。 また次のファイルをインポートしております。 import java.io.FileOutputStream; import java.util.logging.StreamHandler; import java.util.logging.Logger; import java.io.*; 原因等わかる方がいらっしゃれば、お力添えを宜しくお願いいたします。

  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

  • root139
  • ベストアンサー率60% (488/809)
回答No.1

原因はエラーメッセージの通りですね・・・。 StreamHandler.setOutputStream(OutputStream out) は protected ですから、サブクラスか同じパッケージ( java.util.logging )内からしかアクセスできませんよ。 http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/logging/StreamHandler.html#setOutputStream%28java.io.OutputStream%29 コンストラクタで OutputStream を渡すか、ConsoleHandler, FileHandler などのサブクラスを使えば良いのでは? ちなみに J2SE 1.4 はかなり前にサポート期間も終わっていますので、可能ならば新しいバージョンを使った方が良いかと。

関連するQ&A

  • Javaのシリアライズについて質問です。

    Javaのシリアライズについて質問です。 以下の二つのコードで実行すると、ちゃんとシリアライズされたデータが生成されるのですが このコードでは実行するたびにデータが上書きされてしまいます。 これを実行するたびに新しいデータを最後尾に追加するような形にしたいのですがどのようにすればいいのでしょうか? よろしくお願いします。 ------------------------------------------------------------------------------- import java.io.FileOutputStream; import java.io.ObjectOutputStream; import java.io.FileInputStream; import java.io.ObjectInputStream; public class Main { public static void main(String[] args) { Data data = new Data(); data.setName("testtesttest"); try { FileOutputStream outFile = new FileOutputStream("data.txt"); ObjectOutputStream out = new ObjectOutputStream(outFile); out.writeObject(data); out.close(); outFile.close(); } catch(Exception ex) { ex.printStackTrace(); } } } ----------------------------------------------------------------------------------- import java.io.Serializable; public class Data implements Serializable { private String name = ""; public void setName( String NameData ) { name = NameData; } } -----------------------------------------------------------------------------------

    • ベストアンサー
    • Java
  • java.security.KeyStoreについて

    keyStoreファイルをメンテナンスするためのプログラムを引き継いだのですが、このプログラムがビルドできなくて困っています。 (前任者からビルドして使ってね、としか言い残されていないので・・・) プログラムの冒頭部分に以下のような記載があり、矢印をつけた部分でエラーが出てしまいます。 import java.io.FileInputStream; import java.io.FileOutputStream; import java.security.Key; import java.security.KeyStore;  ←ここでビルドエラー import java.security.cert.Certificate; import java.util.Enumeration; エラーメッセージには「型java.security.KeyStoreが見つかりません」と出ていますが、どうすれば解消できるのか検討もつかず、困っています。 同時に渡されたbcprov-jdk14-129.jarになにかありそうなのですが、中には膨大な.classファイルが収められているだけでした。 (bcprov-jdk14-129で検索しても、何も得られなかったので、本当に困っています。) どなたか、お知恵を貸してください。

    • ベストアンサー
    • Java
  • eclipseに記述したjavaファイルに黄色の波線

    が現れるのですが これは問題ないのでしょうか? たとえば import javax.servlet import javax.servlet.http import java.io import java.util import java.util.zip import java.sql.*; import oracle.jdbc.driver.*; の java.util.*; java.util.zip.*; java.sql.*; oracle.jdbc.driver.*; の下に黄色の波線が出てしまいます。 これを消すにはどうしたらいいのでしょうか?

    • ベストアンサー
    • Java
  • JAVAのソートプログラムについて

    List1.txtの内容の単語の数を数え、その数を単語の隣に表示するプログラムを作りました。 (1)List1.txtの内容 ゲーム ゲーム 麻雀 麻雀 野球 ゲーム (2)実行結果 C:\>java Lists ゲーム 3 野球 1 麻雀 2 (3)プログラム import java.io.BufferedWriter; import java.nio.charset.Charset; import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; import java.util.TreeMap; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.util.List; import java.util.*; public class Lists { public static void main(String[] args) throws IOException{ File file3 = new File("C:\\List1.txt"); BufferedReader br3 = new BufferedReader(new FileReader(file3)); FileWriter filewriter3 = new FileWriter(file3,true); TreeMap<String,Integer> tm = new TreeMap<String,Integer>(); String line; while((line = br3.readLine()) != null){ String[] words = line.split("\\s"); for(String s : words){ if(!tm.containsKey(s)){ tm.put(s,1); }else{ tm.put(s,tm.get(s).intValue()+1); }} } for(String s : tm.keySet()){ System.out.println(s + " " + tm.get(s) ); }}} このプログラムを上から単語の数が多い順に表示したいのですがどこをどう修正したらいいのか悩んでます。 C:\>java Lists ゲーム 3 麻雀 2 野球 1 と表示されればOKです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaのソートプログラムについて

    List1.txtの内容の単語の数を数え、その数を単語の隣に表示するプログラムを作りました。 (1)List1.txtの内容 ゲーム ゲーム 麻雀 麻雀 野球 ゲーム (2)実行結果 C:\>java Lists ゲーム 3 野球 1 麻雀 2 (3)プログラム import java.io.BufferedWriter; import java.nio.charset.Charset; import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; import java.util.TreeMap; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.util.List; import java.util.*; public class Lists { public static void main(String[] args) throws IOException{ File file3 = new File("C:\\List1.txt"); BufferedReader br3 = new BufferedReader(new FileReader(file3)); FileWriter filewriter3 = new FileWriter(file3,true); TreeMap<String,Integer> tm = new TreeMap<String,Integer>(); String line; while((line = br3.readLine()) != null){ String[] words = line.split("\\s"); for(String s : words){ if(!tm.containsKey(s)){ tm.put(s,1); }else{ tm.put(s,tm.get(s).intValue()+1); }} } for(String s : tm.keySet()){ System.out.println(s + " " + tm.get(s) ); }}} このプログラムを上から単語の数が多い順に表示したいのですがどこをどう修正したらいいのか悩んでます。 C:\>java Lists ゲーム 3 麻雀 2 野球 1 と表示されればOKです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • import について

    Eclipseで開発しています。 以下2点がImportでエラーになります。 import java.util.* import java.io.*; 以下はImport可です。 import java.lang.reflect.*; import javax.servlet.http.*; import org.apache.struts.action.*; import java.util.*; ライブラリーが足らないのかと思うのですが、よくわかりません ご指導願います。

    • ベストアンサー
    • Java
  • PreparedStatementを使用したDBへの書き込み

    検索させていただいたのですが、同じ事例が見当たらなかったので、質問させてください。 タイトルのようにPreparedStatementを使用してDBへ書き込みたいのです。 import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.Statement; import java.sql.ResultSet; import java.sql.DriverManager; import java.util.Vector; import java.util.Hashtable; import java.util.Date; import java.util.Iterator; ~略~ Date date = new Date(); insert.setString(1,loginid); insert.setInt(2,cart.getGoodsid()); insert.setInt(3,cart.getOrdernum()); insert.setDate(4,date); ※ insert.executeUpdate(); ~略~ というような感じで行いたいのですが、 ※部分でコンパイルエラーになってしまいます。 (この場合はシンボルを解決できませんとなります) 上記以外にもいろいろ試してみましたが、 どうしてもわかりません。 回答よろしくお願いします。

  • java.util.Dateについて

    まずは下記ソースを参照してください。 import java.util.Date; import java.util.GregorianCalendar; import java.util.Calendar; public class Test{     public static void main( String args[] ){         GregorianCalendar cal = new GregorianCalendar(2004, 5, 31);         System.out.println("年:" + cal.get(Calendar.YEAR));         System.out.println("月:" + cal.get(Calendar.MONTH));         System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));         System.out.println(); // ただの改行         System.out.println("比較:" + new Date().compareTo(cal.getTime()));     } } 上記ソースについて質問です。 1.「年」「月」「日」を表示しておりますが、本来ならば 「年:2004」 「月:5」 「日:31」 と表示されると思っておりましたが実際は、 「年:2004」 「月:6」 「日:1」 と表示されてしまいます。 なぜでしょうか? 2.12行目にてjava.util.DateクラスのcompareToメソッドを用いて、 現在日付(2004/5/28)と7行目で指定している日付の比較をしていますが、 7行目で設定している日付を現在日付よりも前後に設定して実行させても、 「-1」しか返りません。 なぜでしょうか? 環境は、 J2SDK:1.4.2 OS:Windows XP Pro です。

    • ベストアンサー
    • Java
  • リフレクションでフィールドに値を設定

    リフレクションで取得したクラスの一覧の各クラスのString型のフィールドにだけ 任意の値を設定するサンプルを下記のように作成しました。 このプログラムの流れの中でString型のフィールドに任意の値を設定するには どのように書けばよいでしょうか。 調べてみるとFieldクラスのsetメソッドを使用するようですが下記サンプルの中で 第一引数には何を渡せばよいかがわからないです。 【サンプル】 ※最初のgetClasses()で指定パッケージ配下のクラスは取得できています。 import java.io.File; import java.io.IOException; import java.lang.reflect.Field; import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; public class ReflectionTest { public static void main(String[] args) { List<Class<?>> classes; try { // 指定したパッケージ配下のクラスを取得 classes = getClasses("test"); for (Class<?> class1 : classes) { Field[] fields = class1.getDeclaredFields(); for(Field field : fields) { field.set(????, "任意の文字列"); // 第一引数に何を渡せばよい?? System.out.println(field.getType().getName()); } } } catch (ClassNotFoundException | IOException | URISyntaxException e) { e.printStackTrace(); } } }

    • ベストアンサー
    • Java
  • Eclipse3.4でJavaアプリ実行時のlogの格納場所

    を教えてください。 例えば package org.fireproject.hibernatesample; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.log4j.Logger; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class ManyToOne { private static Logger logger = Logger.getRootLogger(); public static void main(String args[]) { SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); List oneSideList = createAndSaveOneSide(sessionFactory); List manySideList = createAndSaveManySide(sessionFactory, oneSideList); manySideList = loadManySides(sessionFactory); updateOneSide(sessionFactory, oneSideList); for (Iterator itr = manySideList.iterator(); itr.hasNext();) { ManySide manySide = (ManySide) itr.next(); logger.info(manySide);//<----------------------- } deleteAllManySide(sessionFactory); deleteOneSide(sessionFactory, oneSideList); manySideList = loadManySides(sessionFactory); } において logger.info(manySide); で出力されたログはどこにかかれるのでしょうか? また、その出力先の設定方法も教えてください。

    • ベストアンサー
    • Java

専門家に質問してみよう