乱七八糟的读写

时间:2012-07-08 17:17:48

标签: java swing

好的我要做的是使用按钮从一个.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() );
        }

2 个答案:

答案 0 :(得分:1)

改善您的代码,

  1. 将嵌套的try catch删除到两个单独的try-catch块中,一个用于输入,另一个用于输出。
  2. 删除try (BufferedWriter out = new BufferedWriter(new FileWriter("Outfile.txt")))一个外部区块就足够了。
  3. 分离IO,业务&amp;文件逻辑通过将它们放在不同的类中并且IF NEEDED(仅)在接口后面。
  4. 我不知道你是否有使用向量的特定原因(它具有连续存储在内存中的优点等)但是ArrayList应该足以读取整数列表。
  5. Collections.reverse(arrayList); java.util.Collections对于你的逆转逻辑是一个很有用的方法,如果它是一个赋值/练习,那么你的老师就不会喜欢使用lib方法:)

答案 1 :(得分: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){}