java校验文件格式_Java中的txt文件格式验证

本文介绍了一种使用Java和正则表达式验证`.txt`文件格式的方法,通过限制读取的最大行数并定义特定的格式模式。代码示例展示了如何检查文件中的每一行是否符合预设的正则表达式,从而判断文件格式是否有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小编典典

听起来您正在寻找一种通用的格式设置选项,我可以为您推荐正则表达式吗?您可以使用正则表达式进行各种不同类型的匹配。我在下面写了一个简单的示例[对于所有那些正则表达式专家,如果我不使用完美的表达方式,请多多怜悯我;)]。您可以将REGEX和MAX_LINES_TO_READ常量放入属性文件中,并对其进行修改以使其更通用。

您基本上可以测试“ .txt”文件中的最大行数(但是,建立格式需要很多行是好的-

您也可以对标题行使用正则表达式,或者根据需要使用多个不同的正则表达式来测试格式),如果所有这些行都匹配,则文件将被标记为“有效”。

这只是您可以运行的一个示例。除了仅捕获“ Exception”以外,还应该实现适当的异常处理。

对于用Java测试正则表达式,http://www.regexplanet.com/simple/index.html很好用。

这是“ ValidateTxtFile”源代码…

import java.io.*;

public class ValidateTxtFile {

private final int MAX_LINES_TO_READ = 5;

private final String REGEX = ".{15}[ ]{5}.{15}[ ]{5}[-]\\d{2}\\.\\d{2}[ ]{9}\\d{2}/\\d{2}/\\d{4}";

public void testFile(String fileName) {

int lineCounter = 1;

try {

BufferedReader br = new BufferedReader(new FileReader(fileName));

String line = br.readLine();

while ((line != null) && (lineCounter <= MAX_LINES_TO_READ)) {

// Validate the line is formatted correctly based on regular expressions

if (line.matches(REGEX)) {

System.out.println("Line " + lineCounter + " formatted correctly");

}

else {

System.out.println("Invalid format on line " + lineCounter + " (" + line + ")");

}

line = br.readLine();

lineCounter++;

}

} catch (Exception ex) {

System.out.println("Exception occurred: " + ex.toString());

}

}

public static void main(String args[]) {

ValidateTxtFile vtf = new ValidateTxtFile();

vtf.testFile("transactions.txt");

}

}

这是“ transactions.txt”中的内容…

Electric Electric Co. -50.99 12/28/2011

Food Food Store -80.31 12/28/2011

Clothes Clothing Store -99.36 12/28/2011

Entertainment Bowling -30.4393 12/28/2011

Restaurant Mcdonalds -10.35 12/28/11

我运行应用程序时的输出是…

Line 1 formatted correctly

Line 2 formatted correctly

Line 3 formatted correctly

Invalid format on line 4 (Entertainment Bowling -30.4393 12/28/2011)

Invalid format on line 5 (Restaurant Mcdonalds -10.35 12/28/11)

EDIT 12/29/2011大约10:00 am

不知道是否存在性能问题,但是就像供参考之用,我多次复制“

transactions.txt”中的条目以构建一个大约130万行的文本文件在其中,我可以在PC上大约7秒内浏览整个文件。我将System.out更改为仅在无效(524,288)和有效(786,432)格式的条目末尾显示总计。“

transactions.txt”的大小约为85mb。

2020-11-19

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值