質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

1000閲覧

ファイルの読み込みのエラーが原因なのでしょうか…?

nakagen

総合スコア24

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2021/01/05 06:07

前提・実現したいこと

・ファイルの文を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
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中
作成中

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

エラーは「java.io.FileNotFoundException: sample.txt (指定されたファイルが見つかりません。)」というものなのですから、sample.txtというファイルの置き場所が間違えているか、質問のプログラムが使っているフォルダー(cwd)がsample.txtがおかれているフォルダーと異なっているかです。

ファイルの所在を確認してください。

投稿2021/01/05 06:16

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nakagen

2021/01/05 06:21 編集

ご回答ありがとうございます。それが気になって確かめてみたら、このクラスの中のbinというファイルにsample.txtがあったのですが、このような場合はcwdに問題があるということでしょうか…?
退会済みユーザー

退会済みユーザー

2021/01/05 06:53

ファイル名をフルパスで指定する必要があるのではないでしょうか。
nakagen

2021/01/05 06:54

フルパスとは…?知識不足で申し訳ありません…
退会済みユーザー

退会済みユーザー

2021/01/05 07:07

Windowsなら「C:\hoge\sample.txt」、Linuxなら「/usr/tmp/sample.txt」って感じです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問