前提・実現したいこと
・ファイルの文を1行ずつ読み込んで、配列にしたのですがこのようなエラーが起きてしまいました。ファイルの読み込みが原因なのかswitch文が原因なのか分からず助けてください…
発生している問題・エラーメッセージ
java.io.FileNotFoundException: sample.txt (指定されたファイルが見つかりません。) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at java.io.FileInputStream.<init>(FileInputStream.java:93) at java.io.FileReader.<init>(FileReader.java:58) at saisyuukadai.date1$seEventHandler.handle(date1.java:235) at saisyuukadai.date1$seEventHandler.handle(date1.java:1) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Node.fireEvent(Node.java:8411) at javafx.scene.control.Button.fire(Button.java:185) at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432) at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431) at com.sun.glass.ui.View.handleMouseEvent(View.java:555) at com.sun.glass.ui.View.notifyMouse(View.java:937) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177) at java.lang.Thread.run(Thread.java:748)
該当のソースコード
javafx
1///ファイルの読み込み 2class seEventHandler implements EventHandler<ActionEvent>{ 3 public void handle(ActionEvent e2) { 4 stage3 = new Stage(); 5 BufferedReader br = null; 6 String sT[] = new String[31]; 7 try { 8 br = new BufferedReader(new FileReader("sample.txt")); 9 int i = 0; 10 while (br.ready()) { 11 String line = br.readLine(); 12 sT[i] = line; 13 i++; 14 } 15 }catch (FileNotFoundException e){ 16 e.printStackTrace(); 17 }catch (IOException e){ 18 e.printStackTrace(); 19 }finally{ 20 if(br != null){ 21 try{ 22 br.close(); 23 }catch(IOException e) { 24 e.printStackTrace(); 25 } 26 } 27 } 28 lb = new Label(sT[0]); 29 lb2 = new Label("1."+sT[1]); 30 lb3 = new Label("2."+sT[2]); 31 lb4 = new Label("下にある空欄に上の2つのどちらかをご記入ください"); 32 tf = new TextField(); 33///診断機能 34 String str = tf.getText(); 35 switch(str) { 36 case "暑い": 37 lb.setText(sT[3]); 38 lb2.setText("1."+sT[4]); 39 lb3.setText("2."+sT[5]); 40 switch(str){ 41 case "サハラ砂漠": 42 switch(str) { 43 case "YES": 44 switch(str) { 45 case"14": 46 break; 47 case"15": 48 break; 49 } 50 break; 51 case "3": 52 switch(str) { 53 case"16": 54 break; 55 case"17": 56 break; 57 } 58 break; 59 } 60 break; 61 case "1": 62 switch(str) { 63 case "1": 64 switch(str) { 65 case"18": 66 break; 67 case"19": 68 break; 69 } 70 break; 71 case "w": 72 switch(str) { 73 case"20": 74 break; 75 case"21": 76 break; 77 } 78 break; 79 } 80 break; 81 } 82 break; 83 case "寒い": 84 switch(str) { 85 case "1": 86 switch(str) { 87 case "1": 88 switch(str) { 89 case"22": 90 break; 91 case"23": 92 break; 93 } 94 break; 95 case "111": 96 switch(str) { 97 case"24": 98 break; 99 case"25": 100 break; 101 } 102 break; 103 } 104 break; 105 case "12": 106 switch(str) { 107 case "111": 108 switch(str) { 109 case"26": 110 break; 111 case"27": 112 break; 113 } 114 break; 115 case "1111": 116 //21 117 switch(str) { 118 case"28": 119 break; 120 case"29": 121 break; 122 } 123 break; 124 } 125 break; 126 } 127 break; 128 } 129/// 130 VBox hb=new VBox(20d); 131 hb.getChildren().add(lb2); 132 hb.getChildren().add(lb3); 133 VBox hb1=new VBox(10d); 134 hb1.getChildren().add(lb4); 135 hb1.getChildren().add(tf); 136 BorderPane bp =new BorderPane(); 137 Scene sc = new Scene(bp, 400, 400); 138 hb.setAlignment(Pos.CENTER); 139 bp.setTop(lb); 140 bp.setCenter(hb); 141 bp.setBottom(hb1); 142 stage3.setScene(sc); 143 stage3.show(); 144 } 145 //この繰り返しを5回行うため、32種のデータを用意する 146 } 147
試したこと
・switch文に配列が使用できないので、caseに回答の文字を入れた
###補足
・ファイルの内容(sample.txt)
「暑い」or「寒い」であれば、どちらが我慢できますか?
暑い
寒い
暑い場所と言えば?
サハラ砂漠
チチカカ島
作成中
作成中
作成中
砂漠にある植物と言えば?
サボテン
ヤシの木
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
サボテンを育ててみたいと思う?
YES
NO
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/05 06:21 編集
退会済みユーザー
2021/01/05 06:53
2021/01/05 06:54
退会済みユーザー
2021/01/05 07:07