0

.txtファイルをインポートしたい(.txtファイルの1列に3セットの数字があり、各セットをスペースで区切っていることに注意してください)

2   
3    
4   

3   
2   
1  

1   
2  
3   

数値のセットを配列に変換します。(配列1、2、および3)

array1[] = {2,3,4}   
array2[] = {3,2,1}   
array3[] = {1,2,3}

次に、JFreeGraphライブラリで配列をグラフ化できるようになります。これが私が始めた方法です...私はnetbeansとjavaSwingを使用しています

   @Action
public void openMenuItem() {

    int returnVal = jFileChooser1.showOpenDialog(null);     
    if (returnVal == JFileChooser.APPROVE_OPTION) {  
        File file = jFileChooser1.getSelectedFile();

    try {
    FileReader fileReader = new FileReader(file);    
            jTextArea2.read(new FileReader(file.getAbsolutePath()), null);         

        } catch (IOException ex) {
            System.out.println("problem accessing file" + file.getAbsolutePath());
        }
    } else {
        System.out.println("File access cancelled by user.");
    }
}
4

1 に答える 1

2

おそらくBufferedReaderreadLineを使用して、ファイルから行ごとに読み取ります。空の行に遭遇すると、新しい数字のセットができたことになります。以下は、リストのリストを維持し、文字列のみを読み取る単純化された例です。

public static List<List<String>> parseFile(String fileName){
    BufferedReader bufferedReader = null;
    List<List<String>> lists = new ArrayList<List<String>>();
    List<String> currentList = new ArrayList<String>();
    lists.add(currentList);

    try {
        bufferedReader = new BufferedReader(new FileReader(fileName));
        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            if (line.isEmpty()){
                currentList = new ArrayList<String>();
                lists.add(currentList);
            } else {
                currentList.add(line);
            }
        }

    } catch (FileNotFoundException ex) {
        ex.printStackTrace();
    } catch (IOException ex) {
        ex.printStackTrace();
    } finally {
        try {
            if (bufferedReader != null)
                bufferedReader.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    return lists;
}

編集: JTextArea で結果リストを使用する

List<List<String>> lists = parseFile("test.txt");
for (List<String> strings : lists){
    textArea.append(StringUtils.join(strings, ",") + "\n");
    System.out.println(StringUtils.join(strings, ","));
}
于 2012-04-14T20:36:56.510 に答える