java - 读写变得一团糟

标签 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() );
        }

最佳答案

为了改进您的代码,

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

关于java - 读写变得一团糟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11385065/

相关文章:

java - 如何使用 ASM 创建局部变量?

java - 如何防止 JPanel 继承其容器 JFrame 的大小

java - 我怎样才能让 JToolBars 换行到下一行 (FlowLayout) 而不会将它们隐藏在它们下面的 JPanel 中?

java - 您可以使用 java.util.Random 找到以前生成的随机数吗?

java - 当类路径中存在类时,如何防止隐式 Java 编译?

java - 打印大型 Swing 组件

java - 我不知道如何将 Jbutton 返回到调用它的前一个方法

java - 在 actionPerformed() 方法中将项目添加到 ArrayList 中

java - 我在哪里可以找到 "j_security_check"?

java - 无法在java程序中导入RClusteredMap