我試圖創建一個在文件不存在時寫入文件的塊,但它已經變成了Catch-22。該文件不存在,所以它不能寫入文件,因此它可能存在。這是我的嘗試:如果不存在,寫入文件
if(!FileReadWrite.file2.exists())
FileReadWrite.fileWrite();
public static File file2 = new File("./settings.txt");
public static void fileWrite()
{
try
{
FileWriter fstream = new FileWriter(file2);
BufferedWriter out = new BufferedWriter(fstream);
String c = Byte.toString(Textures.a);
out.write(c);
out.close();
}catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
int ch;
StringBuffer strContent = new StringBuffer("");
InputStream fin = null;
try
{
fin = new FileInputStream(file2);
while ((ch = fin.read()) != -1)
{
strContent.append((char) ch);
}
fin.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
我正在使用Eclipse。該文件位於bin文件夾中,但當我將其導出到jar文件時,它位於jar文件夾之外。
Exception in thread "main" java.lang.ExceptionInInitializerError
at srcD.Main.<init>(Main.java:19) //(FileReadWrite.fileWrite())
at srcD.Main.main(Main.java:129) //(Make JFrame)
Caused by: java.lang.NullPointerException
at srcD.FileReadWrite.<clinit>(FileReadWrite.java:7) //(public file...)
... 2 more
您需要與有權在jar所在的文件夾中創建文件的用戶執行jar。 –
@LuiggiMendoza我有這些特權。 – Coupon22
發佈堆棧跟蹤。 –