Im Versuch, Daten aus einer Doppel verknüpften Datenstruktur in eine Datei zu schreiben, aber kann nicht einen Weg finden, es in dem Printwriter zu drucken catch-Block versuchen:Zugriff und Datenstruktur Daten schreibt in Datei, aber kippe Zugang in Try-Catch-Printwriter
public static void main(String[] args) {
/* Start with the empty list */
LinkedList lk = new LinkedList();
Order x = new Order("1", "x", 1);
Order y = new Order("2", "y", 1);
DoubleNode dll = new DoubleNode();
File f = new File("/Users/Dell/Documents/product.txt");
Product a = new Product("1", "a", 1, 1, 1.);
Product b = new Product("2", "b", 2, 2, 2.);
Product c = new Product("3", "c", 3, 3, 3.);
Product d = new Product("4", "d", 4, 4, 4.);
Product e = new Product("5", "e", 5, 5, 5.);
dll.append(b);
dll.push(d);
dll.push(a);
dll.append(c);
dll.InsertAfter(dll.head.next, e);
System.out.println("Created DLL is: ");
dll.printlistF(dll.head);
String filePath;
try {
f.createNewFile();
filePath = f.getCanonicalPath();
}
catch(IOException io) {
io.printStackTrace();
}
if (f.exists()) {
System.out.println("File exist.");
System.out.println("File is readable: " + f.canRead());
System.out.println("File is writeable: " + f.canWrite());
System.out.println("File is location: " + f.getName());
}
try {
PrintWriter output = new PrintWriter(f);
dll.printlistF(dll.head); //THIS IS THE PLACE I CANT FIGURE IT OUT
output.close();
} catch (IOException e2) {
// TODO: handle exception
System.out.println("ERROR"+e2);
}
}
Aber das würde mich benötigen einen neuen DoubleNode innerhalb des try catch-Block zu erstellen, und als ich versuchte, dll statisch, es sagte „illegal Modifikator, nur endgültig ist erlaubt“ zu machen. Also was soll ich tun? Ich weiß nicht genug über Programmbegriffe, um hier nach ähnlichen Themen zu suchen, also wenn jemand Links zu ihnen hat, würde es geschätzt werden.
statische Mitglieder gehören zur Klasse selbst als auf eine bestimmte Instanz dieser Klasse gegenüber.Sie können den statischen Schlüsselwortmodifikator nicht innerhalb einer Methode verwenden, da Sie sich gerade in dieser Instanz befinden. Wenn Sie möchten, dass die Variable statisch ist, müssen Sie sie auf Klassenebene deklarieren. – Zachary
Sie haben gerade die Datei zum Schreiben geöffnet ('new PrintWriter (f)') und diese der lokalen Variable 'output' zugewiesen, also denken Sie nicht, dass die' printlistF' Methode, die zum Schreiben der Datenstruktur verwendet wird, vielleicht * benötigt * Dieser Wert, dh der 'output' Wert?!?!? Z.B. 'dll.printlistF (output);', da der Parameter 'dll.head' nicht benötigt wird. – Andreas