在android中制作.txt文件

时间:2018-06-05 20:24:20

标签: java android

我想使用这种方法在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。我搜索了互联网,无法找到解决方案。

1 个答案:

答案 0 :(得分:0)

如果fos为null,则不应在其上调用close。如果fos为null,则应立即返回,因为您无法打开该文件。一个更好的问题是为什么fos为null-你传递的是无效路径,因为路径本身是错误的,父目录尚未生成,或者你没有适当的权限。