gpt4 book ai didi

java - 如何从输入文件一次读取两行并将它们添加到对象中?

转载 作者:太空宇宙 更新时间:2023-11-04 10:04:20 31 4
gpt4 key购买 nike

我试图从文本文件中一次读取两行,然后将这些行添加到名为 Record 的对象中,如下所示:例如,文本文件内容如下:

course
computer Science
plant
flower.gif
waterfall
A lot of water falling.
waterfall
waterfall.jpg

然后程序应读取文件的前两行(第 1 行和第 2 行)并创建 Record Id1 = new Record("course", "text", "computer science") 然后读取接下来的两行(第 3 行和第 4 行)并创建 Record Id2 = new Record("plant", "image", "flower.gif") 等等。

但是我的代码没有按照我想要的方式工作,主要是它混淆了字符串 inputLine1inputLine2。例如:代码应该创建 Record Id1 = new Record("course", "text", "computer science"),但事实并非如此,而是创建 Record Id1 = new Record("computer science", "text", "")。所以它读入第一行,然后用第二行替换它。与 Record Id2 = new Record("plant", "image", "flower.gif") 相同,它会创建 Record Id2 = new Record("flower.gif", "image", "")

这是我的代码:

    File file = new File(args[0]);
BufferedReader inputFile = null;
try {
inputFile = new BufferedReader(new FileReader(file));
} catch (FileNotFoundException e2) {
e2.printStackTrace();
}

String inputLine1, inputLine2;
OrderedDictionary newTree = new OrderedDictionary();
try {
while ((inputLine1 = inputFile.readLine()) != null && (inputLine2 = inputFile.readLine()) != null){
Record newRecord;
if(inputLine2.endsWith(".jpg") || inputLine2.endsWith(".gif")){
newRecord = new Record(new Pair(inputLine1, "image"), inputLine2);
} else if(inputLine2.endsWith(".wav") || inputLine2.endsWith(".mid")){
newRecord = new Record(new Pair(inputLine1, "audio"), inputLine2);
} else {
newRecord = new Record(new Pair(inputLine1, "text"), inputLine2);
}

if(newTree.get(newRecord.getKey()) == null){
newTree.put(newRecord);
}
}
} catch (IOException e1) {
e1.printStackTrace();
}

最佳答案

您为 jpg 和 gif 等编写的验证代码看起来不错,但是当它涉及读取两行并将它们连接起来时,您应该使用一个输入读取行并一次性读取两次。然后连接起来。那应该有效..

关于java - 如何从输入文件一次读取两行并将它们添加到对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53110400/

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