Double Linkedデータ構造からファイルにデータを書き込もうとしていますが、Printwriter try catchブロック内でそのデータを印刷できません。ファイルへのデータ構造体データへのアクセスと書き込みtry tryでアクセスできない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);
}
}
しかし、これは、try catchブロック内に新しいDoubleNodeを作成するために私を必要とする、と私は、DLLは、静的作るしようとしたとき、それは「違法修飾子は、唯一の最終が許可されている」と述べました。だから何をすべきか?私はここで似たようなトピックを検索するためのプログラミング用語については十分に分かっていないので、もし誰かがそれらへのリンクを持っていれば、それは高く評価されるだろう。
静的メンバーは、そのクラスの特定のインスタンスではなく、クラス自体に属します。メソッド内でstaticキーワード修飾子を使用することはできません。変数を静的にするには、クラスレベルで宣言する必要があります。 – Zachary
ファイルを開いて( 'new PrintWriter(f)')ローカル変数 'output'に代入しただけです。 *その値、すなわち 'output'値?!?!?例えば。 'dll.printlistF(output);'、 'dll.head'パラメータは必要ないはずですから。 – Andreas