パッケージ java.io

Last update: Dec. 28, 1998

Java Strikes!に戻る

PushbackInputStream#unread(-1)は思った通りの動作をしない Apr. 12, 1998

タイトルの通りです。
何かと便利な java.io.PushbackInputStream ですが、メソッド unread(int b) に EOF のつもりで -1 を渡してもうまく動作しません。
read() すると、255 が返ってきます。トホホ。
それだけです。
目次に戻る

ファイルのサイズを「小さく」できない? Apr. 24, 1998

目次に戻る

ウルトラ便利なSerializable Oct. 29, 1997


インナークラスはシリアライズできない?Oct. 30, 1997


インナークラスもシリアライズ出来る Sep. 14, 1998

インナークラスのシリアライゼーションについて、メールを頂きました。
「シリアライズに失敗しているのは、アウタークラスの obj が Serializable を implements していないからでは?」
おっしゃる通りでした!
以下のように修正すると、見事に成功しました。(JDK1.1.6)
 
    import java.io.*;
    import java.util.*;
     

    public class obj  implements Serializable {

      class serobj implements Serializable {
        int i;

        public serobj() {}

        public serobj(int i) {

          this.i = i;
        }
      }

      private static final String FILE_NAME = "t.tmp";
      public obj() {
       

        try {
          FileOutputStream ostream = new FileOutputStream(FILE_NAME);
          ObjectOutputStream p = new ObjectOutputStream(ostream);
          serobj s = new serobj(10);
          p.writeObject(s);
          ostream.close();

          FileInputStream istream = new FileInputStream(FILE_NAME);
          ObjectInputStream ois = new ObjectInputStream(istream);
          s = (serobj) ois.readObject();
          p.close();
          System.out.println("serobj.i = " + s.i);

        } catch (IOException ioe) {
          ioe.printStackTrace();
        } catch (ClassNotFoundException cnfe) {
          ioe.printStackTrace();
        }
      }
      static public void main(String args[]) {
        new obj();
      }
    }

(しかし、以前同じ事を試した際には出来なかったような気が…)
メールをくださった吉川さん、どうもありがとうございました。

目次に戻る

これは便利!MultipleOutputStream Dec. 31, 1997

目次に戻る
Java Strikes!に戻る

Copyright(C) 1998 FreeBeans