Ich versuche eine TXT-Datei zu lesen und versuche, sie in einem Array zu speichern. folgende ist das Format der txt-Datei:JAVA- Fehler beim Lesen der Datei 1 (Fehler)
A B 5
A C 2
A D 4
.....
public class search {
public static void main(String[] args) throws ParseException {
try {
Scanner user_input = new Scanner(System.in); // for user input
System.out.println("Enter the file name: ");
String filename1 = user_input.next();
File file = new File(filename1);
search bd = new search();
Node[] nodes;
nodes = bd.getNodes(file);
bd.printNodes(nodes);
}
catch(Exception e) {
System.out.println("Error reading file " + e.getMessage());
}
}
public Node[] getNodes(File file) throws IOException {
FileReader bd = new FileReader(file);
BufferedReader bufferReader = new BufferedReader(bd);
String line;
ArrayList<Node>list = new ArrayList<Node>();
while ((line = bufferReader.readLine()) != null) {
String[] token = line.split(" "); // create string of tokens
list.add(new Node(token[0], token[1], Integer.parseInt(token[2])));
}
bufferReader.close();
return list.toArray(new Node[list.size()]); // converting list to array
}
public void printNodes(Node[] nodes) {
System.out.println("======================");
for(Node node : nodes) {
System.out.println(node);
}
System.out.println("======================");
}
Folgende ist meine Klasse Node
class Node {
String leftchild;
String rightchild;
int cost;
public Node(){
}
public Node(String firstchild, String secondchild, int cost){
this.leftchild = firstchild;
this.rightchild = secondchild;
this.cost = cost;
}
public Node(String firstchild, String secondchild) {
this.leftchild = firstchild;
this.rightchild = secondchild;
}
public ArrayList<String> getChildren(){
ArrayList<String> childNodes = new ArrayList<String>();
if(this.leftchild != null)
{
childNodes.add(leftchild);
}
if(this.rightchild != null) {
childNodes.add(rightchild);
}
return childNodes;
}
public boolean removeChild(Node n){
return false;
}
@Override
public String toString() {
return leftchild +" "+ rightchild;
}
}
ich keine Compilierung Probleme haben, aber wenn ich meinen Code ausführe gibt mir Fehler als
Fehler beim Lesen der Datei 1
nicht sicher, warum. Ich habe versucht, meinen Code auf viele Arten zu ändern, aber keiner von ihnen hat funktioniert. Könnte jemand bitte das für mich herausfinden? Dank
Verwenden 'e.printStackTrace();' in den catch-Blöcke die vollständige Fehlermeldung angezeigt . – Kayaman
Ja, ich habe es jetzt benutzt und festgestellt, dass der Fehler "Ausnahme im Thread" ist main "java.lang.ArrayIndexOutOfBoundsException: 1' Also ich vermute, dass es ein Problem mit meiner' printNodes' Methode gibt? – rose
Sie müssen nicht raten, wann Sie Google verwenden können. – Kayaman