如何逐行读取文本文件,并在 Java 中分隔每一行的内容?
How do you read a text file, line by line, and separate contents of each line in Java?
我想知道如何读取文件并扫描每一行,但将每一行的内容分成一个 Char 变量和一个 Double 变量。
示例:
假设我们编写了一个打开文本文件的代码 "Sample.txt"。要阅读第一行,您可以使用以下代码:
while(fin.hasNext())
{
try{
inType2 = fin.next().charAt(0);
inAmount2 = fin.nextDouble();
}
这段代码基本上是说,如果有下一行,它将把下一个字符放入 inType2,将下一个 Double 放入 inAmount2。
如果我的txt文件是这样写的怎么办:
D 100.00
E 54.54
T 90.99
我将如何读取每一行,将 "D" 放入 Char 变量,并将相应的 Double 或“100.00”(在本例中)放入其 Double 变量。
感觉自己写的代码读取了以下txt文件:
D
100.00
E
54.54
T
90.99
如果您能提供一种从文件中读取行并根据变量类型分隔的有效方法,我将不胜感激。 Sample.txt 总是首先是字符,然后是双精度。
-曼尼
使用BufferedReader
读取行,然后按空格拆分。
while((line=br.readLine())!=null){
String[] arry = line.split("\s+");
inType2 = arry[0];
inAmount2 = arry[1];
}
可以用whitespace
和
分隔
Scanner scanner = new Scanner(new File("."));
while (scanner.hasNext()) {
//If both on different lines
c = scanner.next().charAt(0);
d = scanner.nextDouble();
//if both on same line
String s = scanner.next();
String[] splits = s.split("\s+");
if (splits.length == 2) {
c = splits[0].charAt(0);
d = Double.parseDouble(splits[1]);
}
}
scanner.close();
我想知道如何读取文件并扫描每一行,但将每一行的内容分成一个 Char 变量和一个 Double 变量。
示例:
假设我们编写了一个打开文本文件的代码 "Sample.txt"。要阅读第一行,您可以使用以下代码:
while(fin.hasNext())
{
try{
inType2 = fin.next().charAt(0);
inAmount2 = fin.nextDouble();
}
这段代码基本上是说,如果有下一行,它将把下一个字符放入 inType2,将下一个 Double 放入 inAmount2。
如果我的txt文件是这样写的怎么办:
D 100.00
E 54.54
T 90.99
我将如何读取每一行,将 "D" 放入 Char 变量,并将相应的 Double 或“100.00”(在本例中)放入其 Double 变量。
感觉自己写的代码读取了以下txt文件:
D
100.00
E
54.54
T
90.99
如果您能提供一种从文件中读取行并根据变量类型分隔的有效方法,我将不胜感激。 Sample.txt 总是首先是字符,然后是双精度。
-曼尼
使用BufferedReader
读取行,然后按空格拆分。
while((line=br.readLine())!=null){
String[] arry = line.split("\s+");
inType2 = arry[0];
inAmount2 = arry[1];
}
可以用whitespace
和
Scanner scanner = new Scanner(new File("."));
while (scanner.hasNext()) {
//If both on different lines
c = scanner.next().charAt(0);
d = scanner.nextDouble();
//if both on same line
String s = scanner.next();
String[] splits = s.split("\s+");
if (splits.length == 2) {
c = splits[0].charAt(0);
d = Double.parseDouble(splits[1]);
}
}
scanner.close();