gpt4 book ai didi

java - 从 .txt 文件中获取特定文本

转载 作者:行者123 更新时间:2023-11-29 05:40:43 25 4
gpt4 key购买 nike

我想从脚本中获取信息,所以我使用了这个函数

public static HashMap<String, String> getEnvVariables(String scriptFile,String config) {
HashMap<String, String> vars = new HashMap<String, String>();
try {

FileInputStream fstream = new FileInputStream(scriptFile);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
String var= "if [ \"$1\" = \""+config +"\" ] ; then";
// Read File Line By Line
while ((strLine = br.readLine()) != null) {
// use a Scanner to parse the content of each line
// exclude concatenated variables (export xx:$xx)
if (strLine.startsWith("export") && !strLine.contains("$")) {
strLine = strLine.substring(7);
Scanner scanner = new Scanner(strLine);
scanner.useDelimiter("=");
if (scanner.hasNext()) {
String name = scanner.next();
String value = scanner.next();
System.out.println(name+"="+value);
vars.put(name, value);
}
}
}

但是我想从一个特定的行开始阅读

if [ \"$1\" = \""+config +"\" ] ; then

问题是,当一行以空格开始时,程序认为文件已经结束!那么我该如何修复它并使程序解析到文件末尾呢?考虑到该行可能以不止一个空格开头谢谢

最佳答案

您可以尝试删除每一行中不相关的空格吗?

while ((strLine = br.readLine().trim()) != null) {...}

编辑:不要那样做(感谢 Joop Eggen!),否则你会有一个不错的 NPE...)。尝试:

while ((strLine = br.readLine()) != null) {
strLine = strLine.trim();
...
}

关于java - 从 .txt 文件中获取特定文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17698541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com