忍者ブログ

てんねんのSE備忘録

てんねんのためのSE備忘録 間違い指摘いただけると助かります また、拍手なんかしていただけると喜びます

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

java:シリアライズとデシリアライズ

●シリアライズ
オブジェクトをビット列化して出力ストリームを書き出すこと

●デシリアライズ
入力ストリームからオブジェクトのビット列を読み込み、再びオブジェクトにすること

●シリアライズの方法
----------------------------------------------------------------------------
import java.io.*;

class A  implements Serializable{
}

class B{

    //シリアライズの準備(ファイルから)
    //FileInputStreamオブジェクトinFileを生成します。
    //inFileを引数にObjectInputStreamオブジェクトinObjectを生成します。
    FileInputStream inFile = new FileInputStream("object.txt");
    ObjectInputStream inObject = new ObjectInputStream(inFile);
    
    //シリアライズ処理
    A オブジェクト名 = (A)inObject.readObject();

    //デシリアライズの準備(ファイルから)
    //FileOutputStreamオブジェクトoutFileを生成します。
    //outFileを引数にObjectOutputStreamオブジェクトoutObjectを生成します。
    FileOutputStream outFile = new FileOutputStream("object.txt");
    ObjectOutputStream outObject = new ObjectOutputStream(outFile);
    
    //デシリアライズ処理
    outObject.writeObject(new A());
}

------------------------------------------------------------------------------

※1 シリアライズの対象クラス(オブジェクト)はSerializebleが必要
※2 ObjectInputStream → スーパークラス:InputStream
※3 ObjectOutputStream → スーパークラス:OutputStream

拍手[0回]

PR

java:例外処理基礎

●例外処理とは…
プログラムを実行したときに出るエラー(例外)を処理する

●例外処理(例外ハンドラ:Exception Handling)

try{
 
   //例外が起こる処理
   
}catch(例外クラス名 変数){

   //例外が起きたときの処理

}finally{

   //必ず実行される処理
}

●throws節
①例外が起こりそうなメソッドに付ける
②①のメソッドが呼び出されたところにthrowsされた例外処理が無ければコンパイルエラー

→構文
メソッド名 throws 例外クラス名{
}

●throw
強制的に例外を投げる

→構文
throw(new 例外クラス名);

※例外クラス名にはThrowableクラスから派生した例外オブジェクト

●基本的な例外クラス
http://tomame0se.blog.shinobi.jp/Entry/20/

拍手[0回]

java:代表的例外


●:スーパークラス
○:サブクラス
■:基本

■ClassNotFoundException
呼び出そうとしたクラスのクラスファイルが無かった場合

■CloneNotSupportedException
オブジェクトを複製するために Object クラスの clone メソッドが呼び出されたが、
そのオブジェクトのクラスが Cloneable インタフェースを実装していないことを示す

■DataFormatException
データ形式エラーが発生したことを通知

●IOException → サブクラス:EOFException, FileNotFoundException
なんらかの入出力例外の発生を通知するシグナルを発生

●PrinterException → サブクラス:PrinterAbortException, PrinterIOException
印刷システムに例外的な状態が発生したことを示す

●RuntimeException
→ サブクラス:ArithmeticException,ArrayStoreException,IllegalArgumentException
 ClassCastException,NegativeArraySizeException,NoSuchElementException
NullPointerException,SecurityException
JVMの通常の処理でスローすることができる各種の例外のスーパークラス

○ArithmeticException → スーパークラス:RuntimeException
算術計算で例外的条件が発生した場合にスロー
例:「ゼロで除算される」整数はこのクラスのインスタンスをスロー

○ArrayStoreException → スーパークラス:ClassCastException,RuntimeException
不正な型のオブジェクトをオブジェクトの配列に格納しようとしたことを示すためにスロー

○ClassCastException → スーパークラス:RuntimeException
あるオブジェクトを継承関係にないクラスにキャストしようとしたことを示すためにスロー

○IllegalArgumentException → スーパークラス:RuntimeException,IndexOutOfBoundsException
不正な引数、または不適切な引数をメソッドに渡したことを示すためにスロー

○NegativeArraySizeException → スーパークラス:RuntimeException
負のサイズを持った配列をアプリケーションが作成しようとした場合にスロー

○NoSuchElementException → スーパークラス:RuntimeException
この列挙にそれ以上の要素がないと
Enumeration の nextElement メソッドによってスロー

○NumberFormatException→ スーパークラス:IllegalArgumentException
アプリケーションが文字列を数値型に変換しようとしたとき、
文字列の形式が正しくない場合にスロー

○NullPointerException → スーパークラス:RuntimeException
オブジェクトが必要な場合に、アプリケーションが null を使おうとするとスロー

●○SecurityException
→ スーパークラス:RuntimeException
→ サブクラス:AccessControlException, RMISecurityException
セキュリティマネージャによってスローされ、セキュリティ違反を示す

●IndexOutOfBoundsException → サブクラス:ArrayIndexOutOfBoundsException, StringIndexOutOfBoundsException
ある種のインデックス (配列、文字列、ベクトルなど) が範囲外であることを示すためにスロー

拍手[0回]

java:ストリームとリーダー

●ファイルの種類
まず事前知識として…
①テキスト
文字として読めるもの(16ビットのUnicode)

②バイナリ
文字として読めないもの(8ビット)

●テキストを扱うストリーム
①入力ストリーム:Reader  → サブクラス:FileReader
②出力ストリーム:Writer   → サブクラス:FileWriter

●バイナリを扱うストリーム
①入力ストリーム:InputStream     → サブクラス:FileInputStream
②出力ストリーム:OutputStream  → サブクラス:FileOutputStream

●バイナリ←→文字変換ストリーム
①入力ストリーム(文字読込)      :InputStreamReader  → 引数:InputStream
②出力ストリーム(バイナリ書込):OutputStreamWriter → 引数:OutputStream

●その他ストリーム系
①キーボード入力のストリーム:System.in (InputStream)
②BufferedReader → 引数:Reader
   readLine()で行単位の読み込み(何もないときはnull)
  newLiine()で改行(文字コードにほとんど依存なし)
③BufferedStream→引数:InputStream

●ストリーム系の基本メソッド
<1>read()  :ファイルを読み込む(何もないときは-1)
<2>write()  :引数に書き込む文字(テキスト)または、Byte・int(バイナリ)
<3>close() :ファイルを閉じる

拍手[0回]

C++:クラス内での定数宣言

●整数の定数(enumハック)

古いコンパイラでは通常のconstの宣言ではコンパイルエラーになる

class CStack
{
    private:
        enum{ SIZE = 100 };  //const型のint型になる
        int data[SIZE];     
};

参考サイト
http://www.geocities.jp/ky_webid/cpp/language/020.html

●整数以外の定数

ヘッダ側
------------------------------------------------------
class fix_class
{
public:
    const double FIX;   //double型の定数
public:
     fix_class():FIX(1.2){}
}
-------------------------------------------------------

⇒FIXを1.2で初期化
※すべての派生クラスメンバーの構築前に基本クラスコンストラクタは呼び出される

これでint型以外は可能になります

拍手[0回]

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

フリーエリア

最新CM

最新TB

プロフィール

HN:
てんねん
性別:
非公開

バーコード

ブログ内検索

P R

カウンター

忍者アナライズ