0

保存した情報を印刷したい。この問題を解決するにはどうすればよいですか?

public class schoolTimeTable {

    private static ArrayList<String> timesArray = new ArrayList<String>();


    public static void main(String[] args) {

        Scanner scanner = null;

        try {


        File file = new File("C:/Users/Tommy/workspace/Prov/src/TestPaket/text.txt");
        scanner = new Scanner(file);
        while(scanner.hasNextLine()){

            String[] tokens = scanner.nextLine().split("\\s+");

            String[] times = tokens;
            for(String time: times)
            timesArray.add(time);
            System.out.println(timesArray); 



        }} catch (Exception e) {
        // TODO: handle exception
    }

}}
4

3 に答える 3

4

コードの形式とスタイルにもっと注意を払うと、うまくいくでしょう。読みやすさと理解の両方にとって非常に重要です。

catch ブロックは何もしません。空の catch ブロックを決して持つべきではありません。常に最小限のスタック トレースを出力します。

私にとってはうまくいきます:

package cruft;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * SchoolTimeTable
 * @author Michael
 * @link http://stackoverflow.com/questions/15318400/trying-to-read-from-a-text-file-store-it-into-an-an-arraylist-and-print-the-sto/15318413#15318413
 * @since 3/9/13 10:02 PM
 */
public class SchoolTimeTable {

    private static List<String> timesArray = new ArrayList<String>();


    public static void main(String[] args) {
        try {
            File file = new File("resources/timeTable.txt");
            Scanner scanner = new Scanner(file);
            while (scanner.hasNextLine()) {
                String[] times = scanner.nextLine().split("\\s+");
                for (String time : times) {
                    timesArray.add(time);
                }
                System.out.println(timesArray);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

この timeTable.txt をプロジェクトのリソース ファイルに入れました。

1
2 3 4
5 6 7 8

実行したときに得た出力は次のとおりです。

"C:\Program Files\Java\jdk1.7.0_17\bin\java" cruft.SchoolTimeTable
[1]
[1, 2, 3, 4]
[1, 2, 3, 4, 5, 6, 7, 8]

Process finished with exit code 0

これは私には正しいように見えます。

于 2013-03-10T03:01:10.313 に答える
1

何も印刷されていないので、ファイル名が間違っているか、Javaがそれを気に入らないと思います。

パスを再確認し、次のようにスラッシュを(ダブル)バックスラッシュに置き換えてみてください。

C:\\Users\\Tommy\\workspace\\Prov\\src\\TestPaket\\text.txt

そしてもちろん、他の人が言ったように、catchブロックを次のように変更します。

catch (Exception e) {
    e.printStackTrace();
}
于 2013-03-10T03:08:26.237 に答える
0

また、ファイルを読み取ることですか?私はあなたのコードを実行します。ファイルの内容は次のとおりです。

demo1,28,feb-01,true demo2,22,dec-03,false demo3,21,dec-03,false demo4,25,dec-03,true

ファイル名:Visitor.txt 少しコードを変更:</p>

package test;

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

public class schoolTimeTable {
    private static ArrayList<String> timesArray = new ArrayList<String>();
    public static void main(String[] args) {
        Scanner scanner = null;
        try {
            File file = new File("d:/Visitor.txt");
            scanner = new Scanner(file);
            while (scanner.hasNextLine()) {
                String[] tokens = scanner.nextLine().split("\\s+");
                String[] times = tokens;
                for (String time : times)
                    timesArray.add(time);
            }
            System.out.println(timesArray);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

出力: [demo1,28,feb-01,true, demo2,22,dec-03,false, demo3,21,dec-03,false, demo4,25,dec-03,true].

私の意見では、ファイル形式の内容です。ファイル形式の内容を比較します。お役に立てれば幸いです

于 2013-03-10T03:24:11.187 に答える