java - 如何将外部 .txt 文件中的文本与字符串进行比较
问题描述
我已经通过在此处使用此方法实现了从外部文本文件中返回文本
FileReader reader = new FileReader("C:\\Users\\boung\\Desktop\\usernames.txt");
int character;
while ((character = reader.read()) != -1) {
System.out.print((char) character);
}
reader.close();
此方法打印
用户名1
但现在我想做的是,我想获取从文本文件返回的文本,并将其与程序中已经设置的字符串进行比较。像这样:
String S = "username1";
FileReader reader = new FileReader("C:\\Users\\boung\\Desktop\\usernames.txt");
int character;
while ((character = reader.read()) != -1) {
System.out.print((char) character);
}
reader.close();
if (character.contains(S)) {
System.out.println("username1 found");
}
但我无法比较character
和S
。
我需要能够对从 .txt 文件返回的所有文本进行字符串化,并检查文件是否包含我正在寻找的某个字符串。任何人都可以帮忙吗?
解决方案
您需要读取文件不是一个字符一个字符,而是整个到一个字符串,您可以使用下一个代码
String S = "username1";
StringBuilder contentBuilder = new StringBuilder();
try (Stream<String> stream = Files.lines( Paths.get("C:\\Users\\boung\\Desktop\\usernames.txt"), StandardCharsets.UTF_8))
{
stream.forEach(s -> contentBuilder.append(s).append("\n"));
}
catch (IOException e)
{
e.printStackTrace();
}
if (contentBuilder.toString().contains(S)) {
System.out.println("username1 found");
}
```
推荐阅读
- powershell - 如果 Karma 测试失败,如何防止 PowerShell 失败
- java - 未应用 KeyCloak 授权权限
- javascript - 循环 order.find,收集并将大量数据发送到前面。方法不好?
- mysql - 创建表时,外键约束形成错误
- sql - 直到某个时间点的列的 SQL 平均值
- javascript - 如何使用 Illustrator 脚本使色板全局化?
- android - 程序类型已经存在:android.support.v7.app.ActionBar$LayoutParams
- c# - 如何在 UWP 组合框中放置树视图
- azure-devops - 带有 Github 存储库的 Azure/DevOps - 要构建的项目的路径
- r - 使用 Twitter Api 生成表加入 Sentimentr 表