1

私がやろうとしているのは、ボタンを使用して、ある .text ファイルから別のテキスト ファイルに読み取ることです。したがって、イベント駆動型ですが、出力を逆にする必要があります。

私は初心者であり、役立つので、netbeans でコーディングしています。

私はウェブ上で明確な情報を見つけようとして数日間これに取り組んできましたが、苦労しており、今ではコードが開始時よりも悪化しているように見えるので、私がしていることが間違っている理由を指摘してください.

あなたが与えることができるアドバイスを事前にありがとうございました。

これが私のボタンです。

        private void ReadButtonActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        int x ;
        Vector<String> readOrder = new Vector<String>();
        try {
        Scanner i = new Scanner(new FileReader("Out.txt"));
        while( i.hasNextInt()){
        x = i.nextInt();
        readOrder.add(new Integer(x));
        }
        try {
        try (BufferedWriter out = new BufferedWriter(new FileWriter("Outfile.txt")));
        out.append(" " + x);
        out.close();
        }
        i.close();
        }
        catch (Exception e ){}
        for(int i = readOrder.size()-1 ; i >= 0 ; i-- )
        System.out.println( readOrder.elementAt( i ).intValue() );
        }
4

2 に答える 2

1
BufferedReader br = new BufferedReader(new FileReader("Filein.txt"));
StringBuilder build = new StringBuilder();
while(br.ready()){
build.append(br.readline());
}
build.reverse(); //Reverses the order of all the characters in the builder

BufferedWriter bw = new BufferedWriter(new FileWriter("Fileout.txt"));

try{
bw.write(build.toString());
bw.flush();
bw.close();

}catch(Exception e){}
于 2012-07-08T17:36:16.157 に答える
1

コードを改善するには、

  1. ネストされた try catch を削除して、入力用と出力用の 2 つの個別の try-catch ブロックにします。
  2. 外側のブロックを 1 つ外すだけtry (BufferedWriter out = new BufferedWriter(new FileWriter("Outfile.txt")))で十分です。
  3. IO、ビジネス、およびファイル ロジックを別のクラスに配置し、IF NEEDED (のみ) をインターフェイスの背後に配置して分離します。
  4. vector を使用する特定の理由があるかどうかはわかりませんが (メモリに連続して格納されるなどの利点があります)、int のリストを読み取るには ArrayList で十分です。
  5. Collections.reverse(arrayList);java.util.Collections は、リバーサル ロジックに便利なメソッドです。それが課題/演習である場合、教師は lib メソッドの使用を好まないでしょう :)
于 2012-07-08T17:32:36.317 に答える