P462のサンプルプログラムを、
好きな文章を入力し、テキストファイルに出力するものに変えてみよう。
また、今回も
「Java入門教室」
に記載してあった ”汎用性のあるメソッド”を使用しました。
🌟P462ページサンプルプログラムを 変更
//ファイルに出力するプログラムを作ろう。
//何行 入力しますか
//文字を入力させて
//その文字をファイルに出力
import java.io.*;
class SampleP462_2
{
static int line_count; //クラス変数 行数
static String output_sentence; //クラス変数 出力時 出力文書
public static void main(String[] args)
{
System.out.println("テキストに文字を出力させます。" + "\n");
line_count = line(); // line_count クラス変数 行数の入力メソッドに移動
System.out.println("\n" + line_count + "行の文章を作成します。" + "\n");
output_sentence = sentence(); // output_sentence クラス変数 行の文字入力のメソッドに移動
output(); //テキスト出力メソッドに移動
}
public static int line() //行数の入力 → input にて入力作業 → クラス変数に返す
{
String str = input("何行の文章を入力しますか?"); //変数 str はこのメソッドのみ有効
int n; //変数 n はこのメソッドのみ有効
try{
n = Integer.parseInt(str);
}
catch(Exception e){
System.out.println("数値以外が入力されました。1行のみ出力します。");
n = 1;
}
return n;
}
public static String sentence() //行の文字の入力 → inputにて入力作業 → クラス変数に返す
{
String[] str = new String[line_count]; //文字の入力
String str_g = ""; //変数 str_g はこのメソッドのみ有効
for(int i=0; i<str.length; i++){
str[i] = input( (i+1) + "行目の入力です。"); // inputメソッド にて入力作業
}
for(int i=0; i<str.length; i++){ //文字の統合
str_g += str[i] + "\n";
}
return str_g;
}
public static void output() //テキストに出力メソッド
{
try{
PrintWriter pw = new PrintWriter
(new BufferedWriter(new FileWriter("sakubunn.txt")));
pw.println(output_sentence);
System.out.println("ファイルに書き込みました。");
pw.close();
}
catch(IOException e){
System.out.println(e);
}
}
public static String input(String txt) //入力メソッド(汎用) Stringで返す。
{
System.out.println(txt); //txt(コメント)を表示
BufferedReader br = //入力処理
new BufferedReader(new InputStreamReader(System.in));
String str = null; //変数 str はこのメソッドのみ有効
try{
str = br.readLine();
}
catch(IOException e){
System.out.println(e);
}
return str;
}
}
このプログラムは、初めに何行の文章を入力するのか、
予め入力するという 非常に使い勝手が悪いもの。
それを改良したものを作るのだ。
今日の教訓
改良したものを作るぞー!
0 件のコメント:
コメントを投稿