前提・実現したいこと
こんばんは、Javaについての質問です。
とあるJavaの問題を学習中に途中で分からなくなってしまい、困っています。
お手数おかけしますが、お力お貸し頂けますと幸いです。よろしくお願いいたします。
下記が問題文となります。
問題文
数値(1-8)を入力させ、「sample.txt」の入力された行を削除する。 (1~8)以外が入力された場合はもう一度入力させること。 「sample.txt」の内容 あいうえお かきくけこ さしすせそ おえういあ 12 34 56 あ1
作成途中のソースコード
Java
1import java.io.BufferedReader; 2import java.io.BufferedWriter; 3import java.io.File; 4import java.io.FileReader; 5import java.io.FileWriter; 6import java.io.IOException; 7 8public class Insert2File { 9 public static void main(String[] args) throws IOException { 10 11 //書き込み用 12 File file = new File("sample.txt"); 13 FileWriter filewriter = new FileWriter(file); 14 BufferedWriter bw = new BufferedWriter(filewriter); 15 16 //読み込み 17 FileReader fr = new FileReader("sample.txt"); 18 BufferedReader br = new BufferedReader(fr); 19 20 //一行ずつ読み込んでいく 21 String line; 22 23 System.out.println("削除する行を入力してください"); 24 25 26 try { 27 28 for(int i = 1; (line = br.readLine()) != null; i++) { 29 30 switch (i) { 31 case 0: // あいうえお 32 bw.write(line); 33 bw.newLine(); 34 break; 35 36 case 1: // かきくけこ 37 bw.write(line); 38 bw.newLine(); 39 break; 40 41 case 2: // さしすせそ 42 bw.write(line); 43 bw.newLine(); 44 break; 45 46 case 3: // おえういあ 47 bw.write(line); 48 bw.newLine(); 49 break; 50 51 case 4: // 12 52 bw.write(line); 53 bw.newLine(); 54 break; 55 56 case 5: // 34 57 bw.write(line); 58 bw.newLine(); 59 break; 60 61 case 6: // 56 62 bw.write(line); 63 bw.newLine(); 64 break; 65 66 case 7: // あ1 67 bw.write(line); 68 bw.newLine(); 69 break; 70 71 72 } 73 74 bw.flush(); 75 bw.close(); 76 77 br.close(); 78 79 } 80 81 } catch (IOException e) { 82 System.out.println(e); 83} 84} 85} 86 87
実行したいこと等
現状のプログラムだとエラーは起こらずコンパイルは通りますが、テキストファイルには何も効果は効いておらず、何も変化はありませんでした。
問題文のイメージからとりあえず作成しようと試みてここまでは作成できた次第です。
まだ完成までの全体のイメージは掴みかねていますが、まずはここからswich文をどう効かせれば良いのか、また再入力を求めるにはwhile文を使用するとは思うのですがどこに使用すれば良いのかが分かりません。
ご教授くださいますと大変助かります。何卒よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Java
java version "1.8.0_161"
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/06/04 14:09