You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PrintWriter处理数组:提取无效数据存入文件并展示

完整实现方案:筛选非数字错误数据并写入文件

我来帮你完成这个需求的完整代码实现,核心围绕读取文件、校验数据、输出错误内容这几个核心步骤展开。先看可直接运行的完整代码:

import java.util.*;
import java.io.*;

public class MorenoJonathonTranslator {
    public static void main(String[] args) {
        // 定义输入输出文件路径
        String inputFilePath = "numbers.txt";
        String outputFilePath = "wrong.txt";
        
        ArrayList<String> wrongDataList = new ArrayList<>();

        try (Scanner fileScanner = new Scanner(new File(inputFilePath))) {
            System.out.println("Original content (partial):");
            // 逐行读取输入文件内容
            while (fileScanner.hasNextLine()) {
                String line = fileScanner.nextLine().trim();
                // 打印原始数据(如果文件过大,可添加行数限制避免刷屏)
                System.out.println(line);
                
                // 校验逻辑:空行或包含非数字字符的内容都判定为错误数据
                if (line.isEmpty() || !line.matches("\\d+")) {
                    wrongDataList.add(line);
                }
            }

            // 将错误数据写入wrong.txt并在控制台展示
            try (PrintWriter writer = new PrintWriter(new FileWriter(outputFilePath))) {
                System.out.println("\n--- Wrong data found: ---");
                for (String wrongData : wrongDataList) {
                    System.out.println(wrongData);
                    writer.println(wrongData);
                }
                System.out.println("\n错误数据已成功写入wrong.txt");
            } catch (IOException e) {
                System.err.println("写入wrong.txt时出错:" + e.getMessage());
            }

        } catch (FileNotFoundException e) {
            System.err.println("未找到numbers.txt文件:" + e.getMessage());
        } catch (IOException e) {
            System.err.println("文件读取异常:" + e.getMessage());
        }
    }
}

关键细节说明

  • 资源自动管理:用try-with-resources语法处理文件流,不用手动关闭Scanner和PrintWriter,避免资源泄漏
  • 数字校验规则:通过正则表达式\\d+判断是否为纯数字,空行、包含字母/符号的行都会被标记为错误数据(可根据实际需求调整校验规则)
  • 异常友好提示:针对文件不存在、读写失败等场景添加了明确的错误提示,让程序更健壮
  • 双端输出:同时在控制台展示错误数据,并写入wrong.txt文件,满足需求里的展示+持久化要求

运行效果示例

假设numbers.txt内容如下:

12345
abc67
890
xyz
  12a3  

控制台会输出:

Original content (partial):
12345
abc67
890
xyz
  12a3  

--- Wrong data found: ---
abc67
xyz
  12a3  

错误数据已成功写入wrong.txt

同时wrong.txt里会保存这些错误数据:

abc67
xyz
  12a3  

内容的提问来源于stack exchange,提问作者user9424437

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:20:38