当前位置:首页 > 服务端 > new FileOutputStream(fileName)时出现 FileNotFoundException

new FileOutputStream(fileName)时出现 FileNotFoundException

参考:http://nannan408.iteye.com/blog/1335582

  FileOutPutStream在c盘等一级目录下是可以创建文件的,如: new FileOutputStream("c:\\kk.txt");但是在c\\test等就创建不了,File也是一样,为什么呢?直接去看jdk,大概是为了防止随意创建文件对磁盘攻击吧。

   因此“java.io.FileNotFoundException 系统找不到指定的路径"的问题会经常出现在我们的编程中,原因可能有三:

(1)文件名乱码。你工程的编码是 utf-8还是 gbk,如果是gbk那么小心文件名如果有中文,会乱码。

(2)没有创建文件夹,在没有文件夹情况下,创建文件将报错.解决方案为先创建文件夹,具体代码见下面。

(3)有文件夹,但文件所在位置无文件夹,即文件路径太深,超过二级。解决方案同2.

代码如下:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

public class Test {
    public static void main(String[] args) {
        OutputStreamWriter osw = null;
        File directory = null;
        File file = null;
        try {
            String fileName = "D:" + File.separator + "fewlkfe"
                    + File.separator + "分为2";
            directory = new File(fileName);
            directory.mkdirs();
            if (!directory.exists()) {
                return;
            }
            file = new File(fileName + File.separator + "哈哈2.csv");
            file.createNewFile();
            if (!file.isFile()) {
                return;
            }
            osw = new OutputStreamWriter(new FileOutputStream(file));
            osw.write("few");
            osw.flush();
                    } catch (Exception e) {

        } finally {
            try {
                osw.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}


但是我在实际编程中,一般用fos = this.openFileOutput(fileName, Context.MODE_WORLD_WRITEABLE);这句话即可。

作者:little_star
来源链接:https://www.cnblogs.com/wyqfighting/archive/2013/05/03/3057837.html

版权声明:
1、Java侠(https://www.javaxia.com)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaxia.com/server/125159.html

分享给朋友:

“new FileOutputStream(fileName)时出现 FileNotFoundException” 的相关文章