zoukankan      html  css  js  c++  java
  • 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);这句话即可。

  • 相关阅读:
    zzuli-2259 matrix
    【vlan之四种方式链路认证组网]
    【ppp-chap,pap,mp,mp-group】
    【ospf-基础配置】
    【rip-基础配置】
    【静态路由】
    【nat---basic,napt,easy ip】
    【acl-访问控制列表】
    【交换接口的-绑定-认证-隔离】
    【vlan-给予mac地址认证】
  • 原文地址:https://www.cnblogs.com/wyqfighting/p/3057837.html
Copyright © 2011-2022 走看看