reallocの使い方 -- その2

戻る
socketハンドルなど、EOFが来るまで、ファイルサイズが予測できない場合が、まま、あります。
そのときは、このように受信領域を動的に確保、つまりrealloc()で対応します。

::::::::::::::
file-read-test.c
::::::::::::::
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/file.h>
#include <sys/stat.h>
#include <fcntl.h>

/**
* $Id: realloc-test1.html,v 1.1 2009/06/22 16:12:21 kishi Exp kishi $
* @author KISHI Yasuhiro
*/

#define UNITSIZE 2048

char* my_realloc( char* in, int len ) {
    char * tmp = ( char * ) realloc( in, len );
    if ( tmp != NULL ) {
        in = tmp;
    } else {
        perror( "realloc error!" );
        exit( -1 );
    }

    return in;
}

int main( void ) {
    int fd;
    char buf[ UNITSIZE ];
    char *pre_result = NULL;
    char *result = NULL;

    const char* filename = "index.html";

    fd = open( filename, O_RDONLY );
    if ( fd < 0 ) {
        fprintf( stderr, "%s not readable!\n", filename );
        return 1;
    }

    int n;
    int len = 0;
    int pre_len = 0;
    int i = 0;
    while ( ( n = read( fd, buf, UNITSIZE ) ) > 0 ) {

        i++;
        len += n;

        fprintf( stderr, "n=%4d\n", n );
        fflush( stderr );

        if ( result == NULL ) {
            // 初回の処理
            result = ( char * ) malloc( n );
            memcpy( result, buf, n );

            pre_result = ( char * ) malloc( n );
            memcpy( pre_result, buf, n );
            pre_len = n;

        } else {
            // 二回目以降
            result = ( char * ) my_realloc( result, len );
            memcpy( result, pre_result, pre_len );
            memcpy( result + pre_len, buf, n );

            pre_result = ( char * ) my_realloc( pre_result, len );
            memcpy( pre_result, result, len );
            pre_len = len;
        }


    }

    close( fd );

    // 結果の表示
    write( 1, result, len );

    return 0;

}

■実行結果

<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title> 公開技術情報(陳腐なもの) </title>
</head>

<body>

<div align="center">
<img src="trivia.png" border="0"/>
<br>
<img src="http://ew-and-f.hp.infoseek.co.jp/cgi-bin/Count.cgi?df=ew_and_f.isweb33"/>
</div>

<blockquote>
どんなつまらないことでもいつかは役に立つことがある。という前提で脈略もなくメモを書きなぐっています。
あくまでも自分のために書いているので、かなり手抜きです。
ちなみに私本人は、そんなことは全然気にしていませんので、あしからず。
</blockquote>

<br>
<br>

<a href=../>戻る</a>

<br>

<ul>
	<p>
	<li>システム・アーキテクチャ</li>
	<ol>
		<li>
			<a href="./HA.html" target="_self">High Availabilityのシミュレーション</a>
		</li>
		<li>
			<a href="./cache-mgmt.html" target="_self">キャッシュマネジメント</a>
		</li>
		<li>
			<a href="./yet-another-traceability.pdf" target="_blank">トレーサビリティの本質</a>
		</li>
	</ol>

	<p>
	<li>D言語</li>
	<ol>
		<li>
			<a href="./d-associated-array.html" target="_self">D言語で連想配列</a>
		</li>
		<li>
			<a href="./dlang.html" target="_self">D言語でHello, world!</a>
		</li>
	</ol>

	<p>
	<li>C言語/C++</li>
	<ol>
		<p>
		<li>スレッド</li>
		<ul>
			<li>
				<a href="./mutex.html" target="_self">クリティカルセクションとマルチスレッド -- mutexの使用</a>
			</li>
			<li>
				<a href="./critical_section.html" target="_self">クリティカルセクションとマルチスレッド -- semaphoreの使用</a>
			</li>
			<li>
				<a href="./semaphore.html" target="_self">ThreadとSemaphore</a>
			</li>
			<li>
				<a href="./pthread.html" target="_self">cygwinでpthreadを試す</a>
			</li>
		</ul>

		<p>
		<li>ポインタ</li>
		<ul>
			<li>
				<a href="./function-and-pointer.html" target="_self">関数ポインタの引数渡し</a>
			</li>
			<li>
				<a href="./function-pointer2.html" target="_self">関数ポインタの引数渡し -- その2</a>
			</li>
			<li>
				<a href="./pointer.html" target="_self">基礎中の基礎 -- ポインタのポインタ</a>
			</li>
			<li>
				<a href="./realloc.html" target="_self">realloc関数</a>
			</li>
		</ul>

		
		<p>
		<li>広域ジャンプ</li>
		<ul>
			<li>
				<a href="./setjmp_and_longjmp.html" target="_self">setjmp.h そして setjmp()/longjmp()</a>
			</li>
		</ul>

		<p>
		<li>ネットワーク</li>
		<ul>
			<li>
				<a href="./Poll-test.html" target="_self">pollシステムコールを使ったTCPサーバ</a>
			</li>
			<li>
				<a href="./select.html" target="_self">selectシステムコールを使ったTCPサーバ</a>
			</li>
			<li>
				<a href="./HttpClientTest.html" target="_self">C言語でHTTPクライアント -- 少しまともなもの -- 2006/10/14</a>
			</li>
			<li>
				<a href="./http2.html" target="_self">HTTPクライアント(ヘッダとボディの分離)</a>
			</li>
			<li>
				<a href="./http-client.html" target="_self">HTTPクライアント</a>
			</li>
			<li>
				<a href="./socket.html" target="_self">TCP/UDPソケットの例</a>
			</li>
		</ul>

		<p>
		<li>SVR4-IPC</li>
		<ul>
			<li>
				<a href="./shared_memory.html" target="_self">SVR-IPC 共有メモリの使い方(例)</a>
			</li>
			<li>
				<a href="./mq.html" target="_self">Message Queue</a>
			</li>
		</ul>

		<p>
		<li>正規表現</li>
		<ul>
			<li>
				<a href="./regex-perl-and-c.html" target="_self">正規表現 -- URLからホスト名、ポート番号、PATHを切り出す</a>
			</li>
			<li>
				<a href="./regex2.html" target="_self">正規表現 -- より使いやすくしてみる</a>
			</li>
			<li>
				<a href="./regex.html" target="_self">C言語で正規表現</a>
			</li>
		</ul>

		<p>
		<li>データ構造</li>
		<ul>
			<li>
				<a href="./list-by-c2.html" target="_self">C言語で単方向リスト(改良版)</a>
			</li>
			<li>
				<a href="./list-by-c.html" target="_self">C言語で単方向リスト</a>
			</li>
			<li>
				<a href="./list.html" target="_self">双方向リストの使い方</a>
			</li>
			<li>
				<a href="./hashmap-by-using-STL.html" target="_self">g++でハッシュマップ</a>
			</li>
			<li>
				<a href="./std-map-test.html" target="_self">std::mapの使い方</a>
			</li>
			<li>
				<a href="./bbtnew.html" target="_self">C言語を使った連想配列の実装例</a>
			</li>
		</ul>

		<p>
		<li>Mics</li>
		<ul>
			<li>
				<a href="./c++_header_file.html" target="_self">クラスファイル -- 宣言部(ヘッダファイル)と実装部の分離</a>
			</li>
			<li>
				<a href="./Inheritance.html" target="_self">継承とライフサイクル</a>
			</li>
			<li>
				<a href="./sha1sum-test.html" target="_self">メッセージダイジェスト -- SHA1SUM</a>
			</li>
			<li>
				<a href="./fread-test.html" target="_self">ファイルの内容を全てメモリに取り込む</a>
			</li>
			<li>
				<a href="./GetFileSize.html" target="_self">ファイルサイズを求める</a>
			</li>
			<li>
				<a href="./hanoi.html" target="_self">ハノイの塔(再帰)</a>
			</li>
		</ul>
	</ol>

	<p>
	<li>SHELL・コマンドなど</li>
	<ol>
		<li>
			<a href="./strace.html" target="_self">straceの使い方</a>
		</li>
		<li>
			<a href="./dirname-and-basename.html" target="_self">dirnameとbasename</a>
		</li>
		<li>
			<a href="./gpg.html" target="_self">gpgの利用例</a>
		</li>
		<li>
			<a href="./xargs.html" target="_self">xargsコマンドの使用例</a>
		</li>
		<li>
			<a href="./if-then-else.html" target="_self">bashのIF-THEN-ELSE</a>
		</li>
	</ol>

	<p>
	<li>PERL</li>
	<ol>
		<li>
			<a href="perl-threads.html" target="_self">PERLでスレッド</a>
		</li>
		<li>
			<a href="base64-perl.html" target="_self">PERLでBASE64</a>
		</li>
		<li>
			<a href="./sha1-test.html" target="_self">PERLでメッセージダイジェスト</a>
		</li>
		<li>
			<a href="./access-log.html" target="_self">Apacheのアクセスログを正規表現でパースする</a>
		</li>
		<li>
			<a href="./IndexRetriever.html" target="_self">ある種のスパイダー</a>
		</li>
		<li>
			<a href="./LinkExtractor.html" target="_self">正規表現で繰り返し部分(ハイパーリンク、画像URL)を取り出す</a>
		</li>
		<li>
			<a href="./perl-regex.html" target="_self">PERLで正規表現</a>
		</li>
		<li>
			<a href="./attachement.html" target="_self">ファイルを添付したメール送信</a>
		</li>
		<li>
			<a href="./EscapeHTML.html" target="_self">HTMLのタグをエスケープする</a>
		</li>
	</ol>



	<p>
	<li>JAVA</li>
	<ol>
		<!-- スパイダー関連 -->
		<p>
		<li>スパイダー</li>
		<ul>
			<li>
			<a href="./XmlTools.html" target="_self">クロールした結果を抽出する</a>
			</li>
			<li>
			<a href="./is-src.html" target="_self">IntelligentSpiderのソースプログラム</a>
			</li>
			<li>
			<a href="./IntelligentSpider-javadoc/" target="_blank">IntelligentSpiderの設計</a>
			</li>
			<li>
			<a href="./CookieContainer.html" target="_self">CookieContainerクラスの設計</a>
			</li>
			<li>
			<a href="./IS.html" target="_self">(仮称)インテジェントスパイダーの仕様</a>
			</li>
			<li>
			<a href="./trackbackpinger.html" target="_self">JAVAアプリケーションでTRACKBACKする</a>
			</li>
			<li>
			<a href="./last-blog.html" target="_self">フォーム認証後にクッキーを掠め取る</a>
			</li>
			<li>
			<a href="./GraphViewer.html" target="_self">サイト内におけるページ間のリンク構造を可視化する</a>
			</li>
		</ul>

		<p>
		<li>JTable</li>
		<ul>
			<li>
			<a href="./RowManagement.html" target="_self">JTable内の行を操作する(特定行の削除など)-- ListSelectionModel, ListSelectionListenerなどの使い方</a>
			</li>
			<li>
			<a href="./ItemHistory.html" target="_self">JTableで表示するカラムをJCheckBoxで設定する</a>
			</li>
			<li>
			<a href="./RowSelection.html" target="_self">JTable内の特定の行を選択する</a>
			</li>
			<li>
			<a href="./TableCellRendererTest.html" target="_self">TableCellRendererを試す</a>
			</li>
			<li>
			<a href="./TableSorter.html" target="_self">JTable内のセルをソートする</a>
			</li>
			<li>
			<a href="./ColumnWidthTest.html" target="_self">JTableのカラム幅を設定する</a>
			</li>
			<li>
			<a href="./JTableTest.html" target="_self">DBからデータを取得してJTable内に表示する</a>
			</li>
			<li>
			<a href="./jtable.html" target="_self">JTableを使う</a>
			</li>
		</ul>

		<p>
		<li>設計技法</li>
		<ul>
		<li>
			<a href="./robust.png" target="_blank">ロバストネス図の例</a>
		</li>
		<li>
			<a href="./SomethingLikeMVC.html" target="_self">MVCみたいなもの</a>
		</li>
		</ul>

		<p>
		<!-- XML関連 -->
		<li>XML関連</li>
		<ul>
		<li>
			<a href="./RSSAggregator.html" target="_self">RSSアグリゲータおよびキーワードフィルタ</a>
		</li>
		<li>
			<a href="./RSSGenerator.html" target="_self">既存のURLのソースを解析してRSS2.0文書を生成してみる</a>
		</li>
		<li>
			<a href="./createCDATASection.html" target="_self">CDATAセクションを生成する</a>
		</li>
		<li>
			<a href="./CDATAParsingTest.html" target="_self">CDATAセクションの値を取り出す</a>
		</li>
		<li>
			<a href="./making-rss2.0-doc.html" target="_self">DOMを使ってRSS2.0文書を作成する
			SimpleDateFormatの使い方(RFC822タイムゾーン等の処理)
			</a>
		</li>
		<li>
			<a href="./DocumentBuilder.html" target="_self">DocumentBuilder#parse()の引数にInputStreamを使ってみる</a>
		</li>
		<li>
			<a href="./rss0_91.html" target="_self">RSSリーダ(RSS0.91対応)</a>
		</li>
		<li>
			<a href="./rss1_0.html" target="_self">RSSリーダ(RSS1.0対応)</a>
		</li>
		<li>
			<a href="./rss2_0.html" target="_self">RSSリーダ(RSS2.0)</a>
		</li>
		<li>
			<a href="./GUI-template.html" target="_self">XMLで定義されたGUIテンプレートを作成してみる</a>
		</li>
		<li>
			<a href="./gui-xml.html" target="_self">XMLでGUIを定義してみる(超プロトタイプ)
			-- ノードが保有する属性と値のMapを全操作して取得する -- NamedNodeMap, Node#getAttributes()の使い方</a>
		</li>
		<li>
			<a href="./dom_traversal.html" target="_self">DOMを使ったXML文書のトラバーサル(JAXP)</a>
		</li>
		<li>
			<a href="./DOM.html" target="_self">DOMを試す(J2SE 5.0)</a>
		</li>
		<li>
			<a href="./xslt-disable-output-escaping.html" target="_self">disable-output-escapingの使用例</a>
		</li>
		<li>
			<a href="./xslt2.html" target="_self">XSLTに対して外部から変数パラメータを与える</a>
		</li>
		<li>
			<a href="./XPathProcessor.html" target="_self">Xalanを使ってXPATH APIを試す(より汎用的に!)</a>
		</li>
		<li>
			<a href="./url-ping.html" target="_self">XPATHを使って内容を取り出しURLピングする</a>
		</li>
		<li>
			<a href="./XPath.html" target="_self">Xalanを使ってXPATH APIを試す</a>
		</li>
		<li>
			<a href="./xslt.html" target="_self">XSLTを試す(J2SE 5.0)</a>
		</li>
		</ul>

		<!-- 全文検索 -->
		<p>
		<li>全文検索</li>
		<ul>
		<li>
			<a href="./InstallingLucene.html" target="_self">Luceneのインストール</a>
		</li>
		</ul>


		<!-- Ant -->
		<p>
		<li>Ant</li>
		<ul>
		<li>
			<a href="./backup-by-ant.html" target="_self">antを使って差分ファイルだけをバックアップする</a>
		</li>
		<li>
			<a href="./ant.html" target="_self">ant -- build.xmlの例</a>
		</li>
		</ul>

		<!-- ネットワーク -->
		<p>
		<li>Network</li>
		<ul>
			<li>
				<a href="./ResponseTime.html" target="_self">スピード測定(より現実に近いもの)</a>
			</li>
			<li>
				<a href="./SpeedTest.html" target="_self">スピード測定</a>
			</li>
			<li>
				<a href="./CPE.html" target="_self">HTTPリクエストおよびレスポンスの取り扱い</a>
			</li>
			<li>
				<a href="./ResponseCode.html" target="_self">HTTPレスポンスコードを取得する</a>
			</li>
			<li>
				<a href="./content-retriever.html" target="_self">URLからコンテンツを取得して文字コード変換</a>
			</li>
			<li>
				<a href="./Agent.html" target="_self">クラサバとエージェント</a>
			</li>
			<li>
				<a href="./NioSocket.html" target="_self">ソケットクラサバ(java.nio.*)</a>
			</li>
			<li>
				<a href="./ServerThread.html" target="_self">ServerSocketの使い方</a>
			</li>
			<li>
				<a href="./udp-broadcasting.html" target="_self">UDPソケットとブロードキャストアドレス(*.*.*.255)</a>
			</li>
		</ul>

		<p>
		<li>デザインパターン</li>
		<ul>
		<li>
			<a href="./RSSReaderFactory.html" target="_self">RSSリーダのファクトリメソッド対応</a>
		</li>
		<li>
			<a href="./Observer.html" target="_self">Observer/Observableモデル -- Observerパターンの簡単な事例</a>
		</li>
		<li>
			<a href="./InventoryManagement.html" target="_self">在庫管理とシングルトン</a>
		</li>
		<li>
			<a href="./EnumType.html" target="_self">Template Methodの使い方 -- enumを使った改良版</a>
		</li>
		</ul>

		<p>
		<li>正規表現</li>
		<ul>
			<li>
			<a href="./extractor.html" target="_self">HTMLの特定の部分を抽出する(とあるBLOGサイト)</a>
			</li>
			<li>
			<a href="./SlideShow.html" target="_self">スライドショーと正規表現</a>
			</li>
			<li>
			<a href="./tp.html" target="_self">HTMLのテーブルの中身を抽出する</a>
			</li>
			<li>
			<a href="./ta.html" target="_self">HTMLから特定の箇所を切り出す</a>
			</li>
		</ul>

		<p>
		<li>スレッド</li>
		<ul>
			<li>
			<a href="./thread-count-control.html" target="_self">同時起動スレッド数の制御</a>
			</li>
			<li>
			<a href="./thread-test.html" target="_self">同時に一定個数のスレッドを起動するようにする</a>
			</li>
			<li>
			<a href="./Thread-Synchronizing.html" target="_self">スレッドの同期・非同期</a>
			</li>
			<li>
			<a href="./thread2.html" target="_self">スレッドの開始・停止・再開およびActionインタフェースの使い方</a>
			</li>
			<li>
			<a href="./GuidManager.html" target="_self">Threadクラス、Runnableインタフェースおよびシングルトン</a>
			</li>
			<li>
			<a href="./Thread.html" target="_self">スレッドの同期(join)</a>
			</li>
			<li>
			<a href="./pns.html" target="_self">複数スレッドで素数を計算するタスクを分業させる</a>
			</li>
			<li>
			<a href="./threadcontroller.html" target="_self">スレッドの開始・終了を制御する</a>
			</li>
		</ul>


		<p>
		<li>DAO</li>
		<ul>
			<li>
			<a href="./DAO.html" target="_self">DAOについて</a>
			</li>
			<li>
			<a href="./web-ap.png" target="_blank">DAOを利用したWebシステムアーキテクチャ</a>
			</li>
		</ul>

		<p>
		<li>リソース</li>
		<ul>
			<li>
			<a href="./Resource1.html" target="_self">Jarファイル内のリソースをストリームとして読み込む</a>
			</li>
			<li>
			<a href="./Resource2.html" target="_self">Jarファイル内のリソースを読み込む</a>
			</li>
		</ul>

		<p>
		<!-- ビジネスロジック -->
		<li>ビジネスロジック</li>
		<ul>
			<li>
			<a href="./AnotherP2C.html" target="_self">P to C</a>
			</li>
			<li>
			<a href="./P2C.html" target="_self">Producer to Consumer</a>
			</li>
			<li>
			<a href="./SCM.html" target="_self">SCMを可視化する(その1)</a>
			</li>
			<li>
			<a href="./SCM-Emu.html" target="_self">SCMのエミュレーション</a>
			</li>
			<li>
			<a href="./FA3.html" target="_self">生産者・ブローカ・消費者のシミュレーション -- PART3</a>
			</li>
			<li>
			<a href="./FA2.html" target="_self">生産者・ブローカ・消費者のシミュレーション -- PART2</a>
			</li>
			<li>
			<a href="./FA.html" target="_self">生産者・ブローカ・消費者のシミュレーション</a>
			</li>
			<li>
			<a href="./sample-process.xml" target="_blank">プロセスランナー(フローチャートをXMLで表現する)</a>
			</li>
			<li>
			<a href="./StateChartDiagram.html" target="_self">ステートチャートダイアグラムをJavaアプリで作ってみたりする</a>
			</li>
		</ul>

		<!-- JTree -->
		<p>
		<li>JTree</li>
		<ul>
			<li>
			<a href="./TreeCellRenderer3.html" target="_self">TreeCellRendererをためす -- その3 -- JPanelとの組み会わせ</a>
			</li>
			<li>
			<a href="./TCR.html" target="_self">TreeCellRendererをためす -- その2</a>
			</li>
			<li>
			<a href="./TreeCellRenderer.html" target="_self">TreeCellRendererをためす</a>
			</li>
			<li>
			<a href="./TreeSelectionListener.html" target="_self">TreeSelectionListenerをためす</a>
			</li>
			<li>
			<a href="./JTreeTest.html" target="_self">XMLをJTreeにマッピングする</a>
			</li>
			<li>
			<a href="./jtree.html" target="_self">JTreeを使う</a>
			</li>
		</ul>

		<p>
		<li>JLayeredPane</li>
		<ul>
			<li>
			<a href="./L-S.html" target="_self">JLayeredPaneをJScrollPaneにはめ込む</a>
			</li>
			<li>
			<a href="./Overlayed.html" target="_self">JLayeredPaneを使って背景画像の上にお絵かきしてみる</a>
			</li>
			<li>
			<a href="./LayeredPaneTest.html" target="_self">JLayeredPaneを使ってオーバーレイ画像を編集する</a>
			</li>
		</ul>	

		<p>
		<li>画像の取り扱い</li>
		<ul>
		<li>
			<a href="./Collaboration.html" target="_self">複数のクライアントによるお絵かきコラボレーション</a>
		</li>
		<li>
			<a href="./SavingImageOfComponent.html" target="_self">コンポーネントの画像キャプチャをしてファイルに保存する</a>
		</li>
		<li>
			<a href="./SavingImage.html" target="_self">パネル上で編集したイメージを保存する(BufferedImageとImageIO)</a>
		</li>
		<li>
			<a href="./ImageIO.html" target="_self">ImageIOクラスを使って、画像(ファイル、URL)を表示する</a>
		</li>
		</ul>

		<p>
		<li>アプレット</li>
		<ul>
		<li>
			<a href="./Pursuit3.html" target="_self">アプレット作品(その1)</a>
		</li>
		<li>
			<a href="../Applet/LoadImage.html" target="_self">Appletでサーバ内の画像をロード・表示する方法(その1)</a>
		</li>
		<li>
			<a href="./homo.html" target="_self">ホモサピエンス</a>
		</li>
		<li>
			<a href="./composite.html" target="_self">正弦波の合成</a>
		</li>
		<li>
			<a href="./forest.html" target="_self">SwingでApplet</a>
		</li>
		<li>
			<a href="../Applet/MyABC.html" target="_self">Applet間通信</a>
		</li>
		</ul>

		<p>
		<li>Java Plug-in</li>
		<ul>
			<li>
			<a href="jpi.html" target="_self">Java Plug-in -- HTMLコンバータの使い方</a>
			</li>
		</ul>
		
		<p>
		<li>Java Web Start</li>
		<ul>
			<li>
			<a href="../JWS/MyFrame.html" target="_self">Java Web Startを試す</a>
			</li>
		</ul>

		<p>
		<li>マウスオペレーション</li>
		<ul>
			<li>
			<a href="./ComponentDragger.html" target="_self">コンテナ内のコンポーネントをマウスでドラッグする</a>
			</li>
			<li>
			<a href="./MAT.html" target="_self">
				MouseAdapterとMouseMotionAdapterの使い方 -- マウスを使って線分、矩形を描く -- 矩形領域の交差判定</a>	
			</li>
		</ul>

		<p>
		<li>JScrollPane</li>
		<ul>
			<li>
			<a href="./TD.html" target="_self">文書のテンプレートを作成してみる</a>
			</li>
			<li>
			<a href="./JScrollPane.html" target="_self">JScrollPaneを使って画像をスクロール表示する</a>
			</li>
		</ul>	


		<p>
		<li>JTabbedPane</li>
		<ul>
			<li>
			<a href="./TabbedPane.html" target="_self">JTabbedPaneを使ってみる</a>
			</li>
		</ul>	

		<p>
		<li>ダイナミックプロキシ</li>
		<ul>
			<li>
			<a href="./Proxy.html" target="_self">ダイナミックプロキシクラスの使用例</a>
			</li>
		</ul>	

		<p>
		<li>タイマー</li>
		<ul>
			<li>
			<a href="./Timer.html" target="_self">java.util.Timerおよびjava.util.TimerTaskの使用例</a>
			</li>
			<li>
			<a href="./pMonitor.html" target="_self">ProgressMonitorを試す(およびjavax.swing.Timerの使い方)</a>
			</li>
		</ul>


		<p>
		<li>プログレスバー</li>
		<ul>
			<li>
			<a href="./PB.html" target="_self">JProgresBarの使い方</a>
			</li>
		</ul>


		<!-- JButton -->
		<p>
		<li>JButton</li>
		<ul>
			<li>
			<a href="./LoginForm.html" target="_self">JButtonでキー入力(Returnキーなど)を捕捉する -- KeyAdapterの使い方 </a>
			</li>
			<li>
			<a href="./arrow-and-atan2.html" target="_self">JButtonの矢印線での繋ぎこみとatan2()について</a>
			</li>
			<p>
			<li>
			<a href="./ButtonMenuTest.html" target="_self">JButtonを使ったメニュー</a>
			</li>
			<li>
			<a href="./menuContext.html" target="_self">JButtonを使ったメニュー(その2)</a>
			</li>
			<li>
			<a href="./JComponentTest.html" target="_self">オリジナルのJComponent</a>
			</li>
			<li>
			<a href="./DraggingButtonOnJFrame.html" target="_self">フレーム上でボタンをドラッグしてみる</a>
			</li>
			<li>
			<a href="./uitest.html" target="_self">画像などを使った独自のボタン</a>
			</li>
		</ul>

		<p>
		<li>JDialog</li>
		<ul>
		<li>
			<a href="./Dialog.html" target="_self">
				ウィンドウを閉じるときにダイアログを出す</a>	
		</li>
		</ul>

		<p>
		<li>Look&Feel</li>
		<ul>
		<li>
			<a href="./LFT.html" target="_self">Windowsライクなルックアンドフィールにする</a>
		</li>
		</ul>


		<p>
		<li>フォーム・デザイナ</li>
		<ul>
			<li>
			<a href="./FormGenerator.html" target="_self">
				作成したフォーム(=Panel)をシリアライズ、デシリアライズする -- JColorChooserの使い方なども含む</a>
			</li>
			<li>
			<a href="./FD.html" target="_self">パネルに背景画像を配置して、コンポーネントをオーバーレイする</a>	
			</li>
		</ul>

		<p>
		<li>印刷</li>
		<ul>
		<li>
			<a href="./Printable.html" target="_self">java.awt.print.Printableインタフェースを使った画面ハードコピー </a>
		</li>
		</ul>

	
		<p>
		<li>JToolBar</li>
		<ul>
		<li>
			<a href="./JToolBar.html" target="_self">JToolBarを試す(およびコンポーネントのドラッグアンドドロップ)</a>
		</li>
		</ul>

		<p>
		<li>JRadioButton</li>
		<ul>
		<li>
			<a href="./JRadioButton.html" target="_self">JRadioButtonを試す</a>
		</li>
		</ul>



		<!-- JMenu -->
		<p>
		<li>JMenu</li>
		<ul>
			<li>
			<a href="./yapd.html" target="_self">JMenuBar, JMenu, JMenuItemおよびAbstractActionの使い方(メニューの階層化)</a>
			</li>
			<li>
			<a href="./ProcessDesigner.html" target="_self">JMenuBar, JMenu, JMenuItemおよびAbstractActionの使い方</a>
			</li>
			<li>
			<a href="./passanger.html" target="_self">メニュー選択とパネル表示内容の切り替え</a>
			</li>
		</ul>

		<p>
		<li>PDF</li>
		<ul>
			<li>
			<a href="./iTextTest.html" target="_self">iTextを使ってPDF出力</a>
			</li>
		</ul>

		<p>
		<li>Jakarta POI</li>
		<ul>
			<li>
			<a href="./poi.html" target="_self">EXCELファイルをJavaアプリケーションから操作する</a>
			</li>
		</ul>

		<p>
		<li>Drag'n'Drop</li>
		<ul>
			<li>
			<a href="./ToolBarDemo.html" target="_self">
				ツールバーに配置したコンポーネントをDrag&amp;Dropする</a>	
			</li>
			<li>
			<a href="./panel-dnd.html" target="_self">AWTでドラッグアンドドロップを試す(Panel間)</a>
			</li>
			<li>
			<a href="./awt-dnd.html" target="_self">AWTでドラッグアンドドロップを試す</a>
			</li>
		</ul>



		<p>
		<li>SWING関係もろもろ</li>
		<ul>
		<li>
			<a href="./StepView.html" target="_self">JPopupMenuの使用例</a>
		</li>
		<li>
			<a href="./subwindow.html" target="_self">シングルトンと親ウィンドウ・子ウィンドウ</a>
		</li>

		<li>
			<a href="./serialize.html" target="_self">オブジェクトのシリアライズ</a>
		</li>
		<li>
			<a href="./JComboBox.html" target="_self">編集可能なJComboBoxを作ってみる</a>
		</li>
		<li>
			<a href="./TextFileEditor.html" target="_self">ファイルチューザを使ってファイルの読み書きをする</a>
		</li>
		<li>
			<a href="./ticker.html" target="_self">SwingでTicker表示</a>
		</li>
		<li>
			<a href="./tpt.html" target="_self">HTMLのエレメント部分を色付けして表示する -- JTextPaneの使い方</a>
		</li>
		<li>
			<a href="./mc.html" target="_self">マウスイベントの捕捉およびサブウィンドウの表示</a>
		</li>
		<li>
			<a href="./html-swing.html" target="_self">SWINGでHTML</a>
		</li>
		<li>
			<a href="./MySimulation.html" target="_self">稚拙なシミュレーション</a>
		</li>
		<li>
			<a href="./SwingGraphics.html" target="_self">SWINGでGraphicsオフジェクトを使う</a>
		</li>
		<li>
			<a href="./tooltips.html" target="_self">ToolTipを試す -- setToolTipText()メソッドの使用例</a>
		</li>
		<li>
			<a href="./requestFocusInWindow.html" target="_self">指定したコンポーネントにフォーカス指定をする</a>
		</li>
		<li>
			<a href="./SwingForm.html" target="_self">Swingで送信用フォームを作成する</a>
		</li>
		</ul>

		<!-- セキュリティ関連 -->
		<p>
		<li>セキュリティ</li>
		<ul>
		<li>
		<a href="./Token-Based_Encryption.pdf" target="_blank">トークンを毎回変えたダイジェスト生成による認証</a>
		</li>
		<li>
		<a href="./VariableTokenGenerator.html" 
			target="_self">ログイン認証時のトークンを毎回ランダムに変化させる(APOP的アプローチ) </a>
		</li>
		</ul>

		<!-- リフレクションAPI -->
		<p>
		<li>リフレクション</li>
		<ul>
			<li>
			<a href="./reflect.html" target="_self">リフレクションAPI -- おまけ!</a>
			</li>
			<li>
			<a href="./reflection.html" target="_self">リフレクションAPI -- メソッド、フィールドの処理</a>
			</li>
			<li>
			<a href="./pfm.html" target="_self">プロセスフローマネージャ</a>
			</li>
			<li>
			<a href="./Class.html" target="_self">クラスとは</a>
			</li>
			<li>
			<a href="./class4name.html" target="_self">Class.forName( クラス名 ).newInstance() の使い方</a>
			</li>
		</ul>


		<!-- たまにはまじめにデータベース -->
		<p>
		<li>データベース</li>
		<ul>
		<li>
			<a href="./traversal.html" target="_self">ツリー構造(MODEL/VIEW)</a>
		</li>
		<li>
			<a href="http://ew-and-f.hp.infoseek.co.jp/MyStudy/DbUtils/DbUtils.html">
			O/Rマッピング余り好きではありません(DbUtilぐらいで十分)
			</a>
		</li>
		<li>
			<a href="./database-access.html" target="_self">DBアクセスの抽象化</a>
		</li>
		</ul>

		<!-- 雑多なもの -->
		<p>
		<li>Misc</li>
		<ul>
		<li>
			<a href="./base64.html" target="_self">BASE64エンコーダ・デコーダ</a>
		</li>
		<li>
			<a href="./CommandInvocation.html" target="_self">JavaアプリケーションからOSコマンドを起動する(ブラウザを起動する例)</a>
		</li>
		<li>
			<a href="./heap.html" target="_self">Java VMの最大ヒープサイズの指定</a>
		</li>
		<li>
			<a href="./printf.html" target="_self">C言語のprintf(),sprintf()のようなもの</a>
		</li>
		<li>
			<a href="./nio-test.html" target="_self">CharsetDecoderクラスを使ってみる</a>
		</li>
		</ul>

		<p>
		<li>プロパティ</li>
		<ul>
		<li>
			<a href="./PropertyManager.html" target="_self">PropertyManager</a>
		</li>
		<li>
			<a href="./prop2.html" target="_self">XMLにより記述されたプロパティファイル(その2)</a>
		</li>
		<li>
			<a href="./props.html" target="_self">XMLにより記述されたプロパティファイル</a>
		</li>
		</ul>

		<p>
		<li>コレクション</li>
		<ul>
		<li>
			<a href="./LinkedHashMapTest.html" target="_self">java.util.Mapインタフェースを実装したクラスの挙動の差異</a>
		</li>
		<li>
			<a href="./stacktest.html" target="_self">java.util.Stackの基本的な使い方</a>
		</li>
		<li>
			<a href="./stack.html" target="_self">スタックの使い方(応用例)</a>
		</li>
		<li>
			<a href="./queue.html" target="_self">キューを使ってみる</a>
		</li>
		</ul>

		<p>
		<li>初等数学</li>
		<ul>
		<li>
			<a href="./Gaussian.html" target="_self">正規分布 -- Random#nextGaussian()を使う</a>
		</li>
		<li>
			<a href="./LeastSquaresLine.html" target="_self">最小二乗法をためす</a>
		</li>
		<li>
			<a href="./frequencyDistribution.html" target="_self">度数分布を求める</a>
		</li>
		<li>
			<a href="./PrimeFactors.html" target="_self">素因数分解</a>
		</li>
		<li>
			<a href="./Samarium.html" target="_self">62進数の取り扱い</a>
		</li>
		</ul>

		<p>
		<li>ソート</li>
		<ul>
		<li>
			<a href="./sort.html" target="_self">Arrays.sort()とインタフェースComparatorを使って多次元配列をソートしてみる</a>
		</li>
		</ul>

		<p>

		<p>
		<li>データ構造</li>
		<ul>
		<li>
			<a href="./XrefChecker.html" target="_self">クロスリファレンス</a>
		</li>
		<li>
			<a href="./FSTreeViewer.html" target="_self">ファイルシステムのツリー構造を走査する</a>
		</li>
		<li>
			<a href="./CrossReferenceContainer.html" target="_self">サイト内のリンク構造を解析する</a>
		</li>
		<li>
			<a href="./TriangularRelationship.html" target="_self">三角関係</a>
		</li>
		<li>
			<a href="./graphmodel.html" target="_self">データ構造 -- スモールワールドの検証(続編)</a>
		</li>
		<li>
			<a href="./graphtest.html" target="_self">データ構造 -- スモールワールドの検証</a>
		</li>
		</ul>
	</ol>
</ul>

</body>
</html>

戻る

inserted by FC2 system