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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

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

Q&A

解決済

1回答

2301閲覧

listFilesを用いてファイルの内容をコンソールに出力したい

shou_hitotose

総合スコア66

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

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

0グッド

0クリップ

投稿2019/05/29 08:18

Javaでファイルの中身をコンソールに出力するというプログラムに今挑戦しています。
しかしlistFilesでそのディレクトリの中のファイル中身のパスのようなものを出すのには成功したのですがそれを読み込んでコンソールに出力するということが出来ません。
おそらくFile[]の部分をStringに変えればいいのかと考えてArrayList<>をStringにしたりFile[]にして何回か挑戦したのですがうまくいきませんでした。
何か助言を頂ければ幸いです。

Java

1import java.io.BufferedReader; 2import java.io.File; 3import java.io.FileReader; 4import java.util.ArrayList; 5 6public class Final { 7 8 public static void main(String[] args) { 9 // TODO 自動生成されたメソッド・スタブ 10 File dir = new File("Proj4a"); 11 12 File[] list = dir.listFiles(); 13 14 ArrayList<File> array = new ArrayList<File>(); 15 16 17 for (File file : dir.listFiles()) { 18 array.add(file); 19 } 20 21 22 23 24 for(int s=0;s<array.size();s++) { 25 File file = (File) new File(array.get(s)); 26 BufferedReader in = new BufferedReader(new FileReader(file)); 27 28 String str = array.get(s); 29 while((str=in.readLine()) != null) { 30 System.out.println(str); 31 } 32 33 in.close(); 34 } 35 36 37 38 } 39 40 } 41 42

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

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

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

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

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

jimbe

2019/05/29 13:06

> Javaでファイルの中身をコンソールに出力する というのは分かるのですが, > listFilesでそのディレクトリの中のファイル中身のパスのようなものを出すのには成功した というのは何のことでしょう. listFiles で得られるのは, そのフォルダ内にあるエントリ(フォルダやファイル)の File オブジェクトの配列で, ファイルの中身ではありませんし, 「パスのようなもの」とは得体の知れないものなのでしょうか.
shou_hitotose

2019/05/30 00:42

あ、すみません。語弊がありましたね。はい、ファイルの中身ではないです。 たぶんそのファイルの中野テキストのパスが出力されていました。
guest

回答1

0

ベストアンサー

目的のコードはこれぐらいで達成できるのではないでしょうか。
(利用されているJavaのバージョンがわかりませんがjava.nio.Files, try-with-resource文が使えるバージョンだと思いますのでこの書き方をするのがオススメです)

java

1package scripts; 2 3import java.io.BufferedReader; 4import java.io.File; 5import java.io.IOException; 6import java.nio.charset.StandardCharsets; 7import java.nio.file.Files; 8 9public class Final 10{ 11 12 public static void main(String[] args) 13 { 14 // TODO 自動生成されたメソッド・スタブ 15 File dir = new File("."); 16 17 for (File f : dir.listFiles()) { 18 if (f.isDirectory()) { 19 continue; 20 } 21 try (BufferedReader br = Files.newBufferedReader(f.toPath(), StandardCharsets.UTF_8)) { 22 String ln; 23 while ((ln = br.readLine()) != null) { 24 System.out.println(ln); 25 } 26 } 27 catch (IOException e) { 28 e.printStackTrace(); 29 } 30 } 31 } 32}

また、なるべく不要な変数を作らずに処理するのが良いと思います。

投稿2019/05/29 22:52

yuokada

総合スコア550

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

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

shou_hitotose

2019/05/30 00:38

返信ありがとうございます! 参考にさせていただきます!
shou_hitotose

2019/05/30 01:21

無事こちらの方で解決できました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問