This is the website,但边缘的数据是在程序内部创建的。我想要的是将数据作为文本文件,我已经制作了一个文本文件,并且能够逐行读取它。
但是我无法找到如何在程序中使用文本文件中的这些数据。有人能给我任何建议吗?
我的数据看起来像这样,正在创建图表
起点,终点,费用
2 3 1
2 4 1
2 5 2
2 6 2
3 1 1
3 2 1
3 4 1
这是我现在读取文件的代码,我可以打印出所有行或特定行,它读取arraylist中的数据。但我想做行拆分(String [] fields = line.split(“”);)是这样我可以在数据中打印出一个数字。但是当我把它放在代码中时,不允许我这样做,任何人都可以为我添加它。
文件文件=新文件(“data1.txt”);
List<String> lines = new ArrayList<String>();
try{
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
lines.add(scanner.nextLine());
}
scanner.close();
} catch (FileNotFoundException e) {
System.out.println("File not found.");
}
for (int i = 0 ; i <lines.size(); i++){
String getlines = lines.get(i);
}
System.out.print(lines.get(0)+"\n");
}
答案 0 :(得分:1)
您可以使用以下代码阅读该文件:
File file = new File("YOUR_FILE_PATH");
try {
Scanner scanner = new Scanner(file);
scanner.nextLine(); // to ignore the first line which has the header
ArrayList<GraphNode> graphList = new ArrayList<GraphNode>();
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] fields = line.split(" ");
// Do something with these values
graphList.add(new GraphNode(Integer.parseInt(fields[0]),
Integer.parseInt(fields[1]),
Integer.parseInt(fields[2]));
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
创建文件时,您应该保持一致,以创建分隔符,
或space
,因为在您的示例中,标题由,
分隔,而数据由space
您可以使用简单的类来保存数据,例如:
class GraphNode {
private int start;
private int end;
private int cost;
public GraphNode(int start, int end, int cost) {
this.start = start;
this.end = end;
this.cost = cost;
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public int getEnd() {
return end;
}
public void setEnd(int end) {
this.end = end;
}
public int getCost() {
return cost;
}
public void setCost(int cost) {
this.cost = cost;
}
}
答案 1 :(得分:0)
您可以使用循环将文本文件中的数据放入(在您的情况下)一种字符串数组/列表/适合您的目的。然后你可以用它们的索引fx抓住它们。和他们一起做数学。
如果要在之后将它们从字符串类型转换为数字类型,则使用parseInteger方法(fx,如果只处理整数)将它们转换为正确的数据类型。显然有一个parseFloat方法以及float类等等。
读完文件并将数据插入某种字符串数组后。我建议你使用循环将它们放在一个适当数据类型的新数组中,并使用解析方法进行转换。
之后,您可以从新数组中获取值,并使用它们进行数学运算,如果这是您需要的。