アスキーコード表(ascii table)を作成してみよう3

 

Javaで、複数行にわたる文字列を表示するには TextArea が手軽です。
毎度、管理人イガジーです。

という訳でさっそく、アスキーコード表をTextAreaに表示する例です。

/* output: TextArea
 */

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class asciiT3 {
	Frame f=new Frame("ascii Table");
	TextArea ta=new TextArea("",40,10,TextArea.SCROLLBARS_NONE);
	
	asciiT3(){
		f.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent ev) {
                System.exit(0);
            }
        });
		ta.setFont(new Font(Font.MONOSPACED,Font.PLAIN,14));
		f.add(ta,BorderLayout.CENTER);
		f.setSize(340,180);
		int a=' ';
		ta.append("HEX");
		for (int i=0;i<16;++i) ta.append(String.format("+%X", i));
		for (int j=0;j<6;++j){
			ta.append(String.format("\n%02X:", a));
			for (int i=0;i<16;++i){
				if (a==0x7F) ta.append("  ");
				else ta.append(String.format(" %c", a));
				++a;
			}
		}
		ta.append("\n");
		f.setVisible(true);
	}
	public static void main(String[] args) {
		new asciiT3();
	}
}

System.out.printf() が ta.append(String.format()) に対応しています。

これを動かしてみると、人(OS/フォント)によっては0x5C の文字が
¥ だったり、\ だったりします。
0x7E の文字も、〜 だったり、 ̄ だったりします。
困ったものなのですが、そういうものなのです。
「人(環境)によって見え方が変わる文字がある」という事は知っておきましょう。

さて、次にテキストファイルに出力するには次のようにします。

/* output:text file
 */

import java.io.BufferedWriter;
import java.io.FileWriter;

public class asciiT4 {
	asciiT4(){
		int a=' ';
		FileWriter fw=null;
		BufferedWriter bw=null;
		try {
			fw=new FileWriter("asciitable.txt");
			bw=new BufferedWriter(fw);
		//
			bw.write("HEX");
			for (int i=0;i<16;++i) bw.write(String.format("+%X", i));
			for (int j=0;j<6;++j){
				bw.write(String.format("\n%02X:", a));
				for (int i=0;i<16;++i){
					if (a==0x7F) bw.write("  ");
					else bw.write(String.format(" %c", a));
					++a;
				}
			}
			bw.write("\n");
		//
		
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				bw.close();
			}catch(Exception e2){
				e2.printStackTrace();
			}
			System.out.println("saved.");
		}
	}
	public static void main(String[] args) {
		new asciiT4();
	}
}

C言語やphpでは、fopen()を使いますが、Java では
FileWriterと、BufferedWriterを使います。
これも、こういうものだと、ひな形をコピペして使えばOKです。

これを流用すれば、htmlファイルに出力するのも簡単ですね。
(htmlを知っていればという前提が必要ですが)

ぜひ、自力で作成してみてください。

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。