ここから本文です

javaでtxtファイルを読み込み、二次元配列に格納し内容を画面表示させたいのですが...

nai********さん

2014/9/2401:41:41

javaでtxtファイルを読み込み、二次元配列に格納し内容を画面表示させたいのですが、
どなたかご教授ください。

txtファイルを一行ずつ読み込み、「、」で分割しこれを二次元目の配列の要素として格納する。

お願いします。

閲覧数:
2,321
回答数:
2
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

ber********さん

2014/9/2402:15:08

ここまで具体的ならさっと書けますな(^^;

--
// import java.io.*;
// import java.util.*;
// import java.lang.reflect.Array;
String[][] result = null;
String line = null;
BufferedReader reader = null;
List<String[]> list = new ArrayList<String[]>();
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream("test.csv"), "Windows-31J"));
while ((line = reader.readLine()) != null) {
list.add(line.split(","));
}
result = list.toArray((String[][]) Array.newInstance(String[].class, list.size()));
}finally {
if(reader != null) {
reader.close();
}
}
--
IOExceptionのcatchは外側でやってくださいな。

「結果を二次元配列に格納」ってのがJavaっぽくない設計なのでちょっとマニアックなクラスを使ってます。本来なら
{一列目1: 二列目1, 一列目2: 二列目2, ... 一列目n: 二列目n} (JSON風表現)
みたいなマップに詰める仕様にするとJavaっぽいような気がします。

まぁ、仕様は策定者の趣味みたいなものなので、言ってもしゃあないですな。

頑張ってください(^^;

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

sle********さん

2014/9/2406:10:31

try (Stream<String> lns = Files.lines(Paths.get("ファイル.txt"))) {
String[][] result = lns.map(x -> x.split("、")).toArray(String[][]::new);
} catch (IOException e) {
}

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる