- 締切済み
java配列を用いたテキスト(画像)読み込みについ
javaで配列を用いたテキスト(画像)読み込みについて。 教えて下さい。よろしくお願いします。 こんにちは。 現在、javaでプログラミング練習をしているものです。 複数のテキストファイルをランダムに表示させる、というプログラムで、 知恵袋であった、以下の質問を参考に作っています。 (これを応用して、画像のランダム表示を作りたいと考えています) http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1229836927... 自分なりに書き換えてみたりしましたが、上手く動きませんでした。 ((Unknown Source)・・・と表示されてしまいます;) 普通のテキストファイル読み込み、テキストフィールドに表示するプログラムを作りました。 これは正常に動きます。 もし以下のプログラムを活用してランダム表示ができる方法をご存知の方、 是非教えてください。 よろしくお願いします。 //テキスト読み込み try{ File file = new File("adv/testsc.txt"); if (checkBeforeReadfile(file)){ BufferedReader br = new BufferedReader(new FileReader(file)); String result = ""; String allString = ""; while((result = br.readLine()) != null){ allString += result + "\n"; } txtar1.setText(allString); String str; while((str = br.readLine()) != null){ txtar1.setText(str.toString()); } br.close(); }else{ txtar1.setText("ファイルが見つからないか開けません"); } }catch(FileNotFoundException a){ System.out.println(e); }catch(IOException a){ System.out.println(e); } どうぞよろしくお願いいたします。m(_ _)m
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yamada_g
- ベストアンサー率68% (258/374)
できないのは画像の表示なのかランダムに表示するなのかがよくわからないですが・・・ >もし以下のプログラムを活用してランダム表示ができる方法を とあるので、ランダム表示に関して。 ファイルではなくディレクトリを指定するようにして、 ディレクトリ内のファイル一覧を取得、その中からランダムにファイルを表示としたらどうでしょうか? イメージは、 File dir = new File("表示するファイルが存在するフォルダ"); File[] files = dir.listFiles(); Random random = new Random(); int target = random.nextInt(files.length); File file = files[target]; //表示処理・・ みたいな感じです。 >自分なりに書き換えてみたりしましたが、上手く動きませんでした。 >((Unknown Source)・・・と表示されてしまいます;) 書き換えてみたコードを記載したほうがいいです。 どこを直したらいいのか具体的に回答しやすくなりますので。 エラーの内容もスタックトレースを貼り付けた方がいいと思います。 これだけでは見ている人には何もわかりませんので。。
補足
ご回答ありがとうございます。(>< ディレクトリを指定する、という方法は知りませんでした。 チャレンジしてみたいと思います。 ありがとうございます。 何度も質問して申し訳ないのですが、 コンポーネントやラベルにテキスト同様に画像をランダムに読み込んで、表示させる、 という事は可能なのでしょうか? 自分が改造・・・というか、上記のファイル表示プログラムを基に 書いたものが以下のものになります。 他のサイトさんのプログラムも参考に考えました。 String [] txt={"adv/scenerio.txt", "adv/testsc.txt"}; Random r = new Random () ; int n = r .nextInt (txt.length) ; String fn = txt [n] ; try{ FileReader fr = new FileReader(fn); BufferedReader br = new BufferedReader(fr); String line; while((line = br.readLine()) != null){ txtar1.setText(line.toString()); br.close(); fr.close(); } (省略していますが、txar1というテキストエリアは作成しています。) エラーは以下の通りです。 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileReader.<init>(Unknown Source) at jp.ohtsuki.adv.Abc.actionPerformed(Abc.java:291) at java.awt.Button.processActionEvent(Unknown Source) at java.awt.Button.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 何度もお手数おかけして申し訳ありませんが、 どうぞよろしくお願いいたします。