我想使用这种方法在android中打印文件:
public static void Save(File file, String[] data)
{
FileOutputStream fos = null;
try
{
fos = new FileOutputStream(file);
} catch(FileNotFoundException e)
{
e.printStackTrace();
}
try
{
try
{
for(int i = 0; i < data.length; i++)
{
fos.write(data[i].getBytes());
if(i < data.length - 1)
{
fos.write("\n".getBytes());
}
}
} catch(IOException e)
{
e.printStackTrace();
}
} finally
{
try
{
fos.close();
} catch(IOException e)
{
e.printStackTrace();
}
}
}
但是当我点击按钮时我的应用程序崩溃了,我收到了这个错误:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.io.FileOutputStream.close()' on a null object reference
事实证明,该行fos = new FileOutputStream(file);
(在第一次尝试中)不会改变fos的值,并且它保持为null。我搜索了互联网,无法找到解决方案。
答案 0 :(得分:0)
如果fos为null,则不应在其上调用close。如果fos为null,则应立即返回,因为您无法打开该文件。一个更好的问题是为什么fos为null-你传递的是无效路径,因为路径本身是错误的,父目录尚未生成,或者你没有适当的权限。