如何使用特定行的 BufferedReader 从文本文件中分配值?
How do I assign values from a Textfile with BufferedReader from a specific line?
package inputOutput;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class Test_leser {
public static void main(String[] args) throws IOException {
// asking which file to open (no abändre das es dynamisch übere Browser funktioniert)
Scanner scan = new Scanner(System.in);
System.out.println("Enter Filename ");
BufferedReader bReader = null;
// Open demanded file
try {
bReader = new BufferedReader(
new FileReader("C:\Users\valat\OneDrive\Desktop\image-data\" + scan.next()));
} catch (FileNotFoundException fnfex) {
System.out.println(fnfex.getMessage());
// Programm geht nicht weiter, falls file not found
System.exit(0);
}
String line;
String resolution = null;
String image = null;
String description = null;
int i = 0;
// assigning values to variables
while ((line = bReader.readLine()) != null) {
// zähler
i += 1;
if (line.startsWith("description:")) {
description = line;
}
else if (line.startsWith("image-file")) {
image = line;
}
else if (line.startsWith("resolution:")) {
resolution = line;
} else {
System.out.println("something is REALLY wrong");
}
System.out.println(description);
System.out.println(image);
System.out.println(resolution);
}
}
}
嘿嘿。我在这里遇到了麻烦。
我正在使用文本文件中的 BufferedReader 阅读此文本:
description: Blutausstrich (Mensch)
image-file: image01.jpg
resolution: 0.002 mm
在那之后,我的下一个意图是遍历每一行,并将每一行单独分配给一个变量。
问题是,每当我尝试时,我的输出如下:
description: Blutausstrich (Mensch)
null
null
description: Blutausstrich (Mensch)
image-file: image01.jpg
null
description: Blutausstrich (Mensch)
image-file: image01.jpg
resolution: 0.002 mm
如您所见,这并不是我想要的。我怎样才能只分配用我的变量从 txt 文件中满足我的 if 条件的特定行?我真的很感激一些帮助,我试着玩这个几个小时,我查了很多不同的东西,我很确定这是一个非常明显的答案,会让我思考 "oh bloody hell, seriously? I'm a moron"。
提前谢谢大家!
将标准输出移出 while 循环:
System.out.println(description);
System.out.println(image);
System.out.println(resolution);
问题是我们在所有变量赋值之前打印。
干杯!
package inputOutput;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class Test_leser {
public static void main(String[] args) throws IOException {
// asking which file to open (no abändre das es dynamisch übere Browser funktioniert)
Scanner scan = new Scanner(System.in);
System.out.println("Enter Filename ");
BufferedReader bReader = null;
// Open demanded file
try {
bReader = new BufferedReader(
new FileReader("C:\Users\valat\OneDrive\Desktop\image-data\" + scan.next()));
} catch (FileNotFoundException fnfex) {
System.out.println(fnfex.getMessage());
// Programm geht nicht weiter, falls file not found
System.exit(0);
}
String line;
String resolution = null;
String image = null;
String description = null;
int i = 0;
// assigning values to variables
while ((line = bReader.readLine()) != null) {
// zähler
i += 1;
if (line.startsWith("description:")) {
description = line;
}
else if (line.startsWith("image-file")) {
image = line;
}
else if (line.startsWith("resolution:")) {
resolution = line;
} else {
System.out.println("something is REALLY wrong");
}
System.out.println(description);
System.out.println(image);
System.out.println(resolution);
}
}
}
嘿嘿。我在这里遇到了麻烦。 我正在使用文本文件中的 BufferedReader 阅读此文本:
description: Blutausstrich (Mensch)
image-file: image01.jpg
resolution: 0.002 mm
在那之后,我的下一个意图是遍历每一行,并将每一行单独分配给一个变量。 问题是,每当我尝试时,我的输出如下:
description: Blutausstrich (Mensch)
null
null
description: Blutausstrich (Mensch)
image-file: image01.jpg
null
description: Blutausstrich (Mensch)
image-file: image01.jpg
resolution: 0.002 mm
如您所见,这并不是我想要的。我怎样才能只分配用我的变量从 txt 文件中满足我的 if 条件的特定行?我真的很感激一些帮助,我试着玩这个几个小时,我查了很多不同的东西,我很确定这是一个非常明显的答案,会让我思考 "oh bloody hell, seriously? I'm a moron"。
提前谢谢大家!
将标准输出移出 while 循环:
System.out.println(description);
System.out.println(image);
System.out.println(resolution);
问题是我们在所有变量赋值之前打印。
干杯!