【发布时间】:2012-09-30 18:45:37
【问题描述】:
我正在尝试创建一个在文件不存在时写入文件的块,但它已变成 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 我有这些特权。
-
第一个块是Main 19,公共静态文件行是FileReadWrite 7。
标签: java file file-io io inputstream