画像(logo)

HOME/[簡易ソフト開発]ソースHTML置換 目次/二日目 Java言語による置換部分の作成

広告

[簡易ソフト開発 ソースHTML置換]
二日目 Java言語による置換部分の作成

広告

↓発売日:2018年09月22日↓

たった1日で基本が身に付く! C言語 超入門

新品価格
¥2,225から
(2018/10/8 23:10時点)

目次へ戻る

Java言語による置換部分の作成

それでは手始めにJava言語による置換部分を作っていきます。

ファイルの内容を「String」に

今回は「String」クラスの置換メソッドを使って置換を行っていくのでまずはファイルの内容を「String」オブジェクトに置き換えます。

class FileToString{
	static String fileToString(String file_name){

		StringBuffer sb = new StringBuffer();

		try{
			FileReader fr = new FileReader(new File(file_name));
			int ch;
			while((ch = fr.read()) != -1){
				sb.append((char)ch);
			}
			fr.close();			
		}
		catch(FileNotFoundException e){
			System.out.println(e);
			return "error";
		}
		catch(IOException e){
			System.out.println(e);
			return "error";
		}

		return sb.toString();
	}
}

ファイルの内容を「String」オブジェクトに置き換える為のクラス「FileToString」です。

とりあえず「static」メソッドとして目的のメソッドを用意しました。

内容としてはひとまずファイルの内容を受け取る為の「StringBuffer」オブジェクトを用意して、

StringBuffer sb = new StringBuffer();

そこに「FileReader」クラスを使ってファイルの内容を一文字ずつ読み込むとともに「append」メソッドで先ほど用意した「StringBuffer」オブジェクトに一文字ずつ付け加えていきます。

try{
	FileReader fr = new FileReader(new File(file_name));
	int ch;
	while((ch = fr.read()) != -1){
		sb.append((char)ch);
	}
	fr.close();			
}

あとは例外処理を書いてファイルの内容を受け取りきった「StringBuffer」オブジェクトを「String」オブジェクトに置き換えて「return」して完了です。

catch(FileNotFoundException e){
	System.out.println(e);
	return "error";
}
catch(IOException e){
	System.out.println(e);
	return "error";
}

return sb.toString();

ファイル読み込みの処理などはほとんど一緒なので定型句として覚えてしまいましょう。

ファイルの内容を置換、書き込み

「ファイルの内容を「String」オブジェクトに置き換える為のクラス」が準備できたトコロでファイル名を受け取り置換処理に入っていきます。

class CodeToHTML{
	public static void main(String args[]){
		String str = FileToString.fileToString(args[0]);
		if(!(str.equals("error"))){
		
			System.out.println("置換前の内容");
			System.out.println(str);
	
			str = str.replaceAll("&","&");
			str = str.replaceAll("<","&lt;");
			str = str.replaceAll(">","&gt;");
			str = str.replaceAll("\"","&quot;");

			System.out.println("\n置換後の内容");
			System.out.println(str);
			System.out.println("\n置換してよろしいですか?(y / n)");

			String ans;
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			try{
				ans = br.readLine();
				if(ans.equals("y")){
					FileWriter fw = new FileWriter(new File(args[0]));
					fw.write(str);
					fw.close();
					System.out.println("置換完了しました!");
				}
				else{
					System.out.println("置換中止しました!");
				}
				ans = br.readLine();
			}
			catch(IOException e){
				System.out.println(e);
			}
		}
	}
}

クラス「CodeToHTML」になります。

「main」メソッドを設置して置換処理を行っていきます。

細かく見ていきましょう。

ファイルの内容を「Stringオブジェクトに」

まずコマンドラインから受け取った置換するファイルの名前は「main」メソッド引数の「args[0]」に格納されているので

String str = FileToString.fileToString(args[0]);

さきほど用意した「FileToString」クラスを使ってファイルの内容を「String」オブジェクトに置き換えます。

置換前の内容、置換後の内容を表示

置換前の内容を表示→置換→置換後の内容を表示します。

System.out.println("置換前の内容");
System.out.println(str);
	
str = str.replaceAll("&","&amp;");
str = str.replaceAll("<","&lt;");
str = str.replaceAll(">","&gt;");
str = str.replaceAll("\"","&quot;");

System.out.println("\n置換後の内容");
System.out.println(str);
System.out.println("\n置換してよろしいですか?(y / n)");

ファイルの内容はもう「String」オブジェクトに入っているので「replaceAll()」メソッドを使って置換していきます。

確認をとって問題なければ置き換える

置換前の内容、置換後の内容を確認したトコロで問題なければ置換します。

String ans;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
ans = br.readLine();

標準入力の受取にはこちらを使います。

入力待ちになり「Enter」が押されるまでの入力部分を受け取る事ができるのでこれを使って確認の答えを受け取ります。

try{
	ans = br.readLine();
	if(ans.equals("y")){
		FileWriter fw = new FileWriter(new File(args[0]));
		fw.write(str);
		fw.close();
		System.out.println("置換完了しました!");
	}
	else{
		System.out.println("置換中止しました!");
	}
}
catch(IOException e){
	System.out.println(e);
}

問題なければ「FileWriter」クラスを使って先ほどの「String」オブジェクトの内容をファイルに書き込んで完了です。

それでは次回は起動部分を作っていきましょう!

次回

三日目 c言語による起動部分の作成

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓発売日:2016年02月29日↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

新品価格
¥2,462から
(2018/10/8 23:25時点)

↓発売日:2018年06月22日↓

スッキリわかるC言語入門

新品価格
¥2,916から
(2018/10/8 23:15時点)

↓発売日:2018年03月09日↓

C言語本格入門 ~基礎知識からコンピュータの本質まで

新品価格
¥3,218から
(2018/10/8 23:16時点)

↓発売日:2017年06月14日↓

やさしいC 第5版 (「やさしい」シリーズ)

新品価格
¥2,700から
(2018/10/8 23:17時点)

↓発売日:2018年05月21日↓

作って身につく C言語入門

新品価格
¥2,462から
(2018/10/8 23:18時点)

↓発売日:2017年12月07日↓

新・標準プログラマーズライブラリ C言語 ポインタ完全制覇

新品価格
¥2,678から
(2018/10/8 23:19時点)

↓発売日:2017年02月08日↓

新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)

新品価格
¥2,700から
(2018/10/8 23:20時点)

↓発売日:2017年09月26日↓

かんたん C言語 [改訂2版] (プログラミングの教科書)

新品価格
¥2,916から
(2018/10/8 23:22時点)