Java 只读取行中的特定部分以放入数组
Java reading only specific part in the line to put into an array
我是 Java 的新手。
有以下的txt文件
25/05/2022 23:55:31,180.0,45.0,13.9,Underweight
30/05/2022 22:24:05,161.0,67.0,25.8,Overweight
30/05/2022 22:58:29,121.0,98.0,66.9,Obese
30/05/2022 22:58:38,168.0,67.0,23.7,Healthy
30/05/2022 23:25:58,140.0,54.0,27.6,Overweight
有什么方法可以只读取每行后面的部分数据到数组中吗?
13.9
25.8
66.9
23.7
27.6
首先,您必须使用文件 class 或其他文件 class 来读取文件。您将必须阅读所有行并将其放入列表。现在这些是行,您可以从这些行中使用 string.split(",") 和您要获取的索引迭代并填充最终结果(列表)。这将是一种可能的方式。但是抓取索引和硬编码可能会在以后出现问题。
File file = new File("C:\Users\Desktop\test.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
List<String> lines = new ArrayList<>();
String string;
List<String> result = new ArrayList<>();
while ((string = br.readLine()) != null)
lines.add(string);
}
for(var line : lines){
String[] datas = line.split(",");
if(datas.size()>3){
results.add(datas[3]);
}
}
return lines;
通读每一行并用 ,(逗号)分隔行。使用索引访问要打印的值;
代码:
import java.io.BufferedReader;
import java.io.FileReader;
public class SplitFileAndPrintPart {
public static void main(String[] args) {
String fileName = "TestFile.txt";
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) { //[#1]
String line;
while ((line = br.readLine()) != null) { // [#2]
String[] splitLine = line.split(","); // [#3]
System.out.println(splitLine[3]); // [#4]
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
解释:
#1:使用 FileReader 和 BufferedReader 读取文件;这里我们使用“try with resources”让资源自动关闭。
#2:从文件中读取每一行并将其分配给变量“line”。
#3:由于值是逗号分隔的,因此使用逗号分隔行。
#4: 由于你需要的数据在第 4 个位置(索引 3),打印索引 3 处的值。
输出:
13.9
25.8
66.9
23.7
27.6
我是 Java 的新手。 有以下的txt文件
25/05/2022 23:55:31,180.0,45.0,13.9,Underweight
30/05/2022 22:24:05,161.0,67.0,25.8,Overweight
30/05/2022 22:58:29,121.0,98.0,66.9,Obese
30/05/2022 22:58:38,168.0,67.0,23.7,Healthy
30/05/2022 23:25:58,140.0,54.0,27.6,Overweight
有什么方法可以只读取每行后面的部分数据到数组中吗?
13.9
25.8
66.9
23.7
27.6
首先,您必须使用文件 class 或其他文件 class 来读取文件。您将必须阅读所有行并将其放入列表。现在这些是行,您可以从这些行中使用 string.split(",") 和您要获取的索引迭代并填充最终结果(列表)。这将是一种可能的方式。但是抓取索引和硬编码可能会在以后出现问题。
File file = new File("C:\Users\Desktop\test.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
List<String> lines = new ArrayList<>();
String string;
List<String> result = new ArrayList<>();
while ((string = br.readLine()) != null)
lines.add(string);
}
for(var line : lines){
String[] datas = line.split(",");
if(datas.size()>3){
results.add(datas[3]);
}
}
return lines;
通读每一行并用 ,(逗号)分隔行。使用索引访问要打印的值;
代码:
import java.io.BufferedReader;
import java.io.FileReader;
public class SplitFileAndPrintPart {
public static void main(String[] args) {
String fileName = "TestFile.txt";
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) { //[#1]
String line;
while ((line = br.readLine()) != null) { // [#2]
String[] splitLine = line.split(","); // [#3]
System.out.println(splitLine[3]); // [#4]
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
解释:
#1:使用 FileReader 和 BufferedReader 读取文件;这里我们使用“try with resources”让资源自动关闭。
#2:从文件中读取每一行并将其分配给变量“line”。
#3:由于值是逗号分隔的,因此使用逗号分隔行。
#4: 由于你需要的数据在第 4 个位置(索引 3),打印索引 3 处的值。
输出:
13.9
25.8
66.9
23.7
27.6