zoukankan      html  css  js  c++  java
  • file类 文件存入指定目录

     1 void save(String deviceId) {
     2         //添加一个设备,一定要发起网络请求,告诉服务器,让服务器返回一个deviceId
     3         
     4         DeviceInfo mDevice = new DeviceInfo(deviceId);        
     5         mDevice.setDeviceName(devname);
     6         mDevice.setServerAddress(address);
     7         mDevice.setPort(port);
     8         mDevice.setUserName(username);
     9         mDevice.setPassword(passwd);        
    10         mDevice.setChannelNum(chanum);
    11         
    12         ObjectOutputStream oos = null;
    13         File directory = null;
    14         File file = null;
    15         String fileName = null;
    16         
    17         try {
    18             fileName ="/data/data/wyq.use.supermeye/device/"+"device"+deviceId;
    19             directory = new File(fileName);
    20             directory.mkdirs();
    21             if (!directory.exists()) {
    22                 return;
    23             }
    24             file = new File(fileName + File.separator + "d"+deviceId+".ser");
    25             file.createNewFile();
    26             if (!file.isFile()) {
    27                 return;
    28             }
    29             oos = new ObjectOutputStream(new FileOutputStream(file));
    30             oos.writeObject(mDevice);
    31             oos.flush();
    32             } catch (Exception e) {
    33 
    34             } finally {
    35                 try {
    36                     oos.close();
    37                 } catch (IOException e) {
    38                     Log.d("IOException","IOException");
    39                     e.printStackTrace();
    40                 }
    41             }
    42             
    43         DeviceCache.saveFile(mDevice);        
    44     }

    实际存的效果如下:

    经常出现的问题:FileNotFoundException。

    看File类的构造方法:

    1、File(String path)  file的完整路径,把文件名也带进去

         File f = new File("/data/data/wyq.use.supermeye/"+filename);

    2、File(URI uri)

    3、File(String path,String name)  file要存放的路径,文件名

        File f = new File("/data/data/wyq.use.supermeye",filename);

    4、File(File dir,String name)  file要存放的路径,文件名

        String filename = "d"+deviceId+".ser";

        File dir = new File("/data/data/wyq.use.supermeye");

        File f = new File(dir,filename);

    又加了一层文件夹

      File dir = new File("/data/data/wyq.use.supermeye/device");
      dir.mkdirs();
      File f = new File(dir,filename);

    上面的加不加dir.mkdirs()效果是一样的,但是这个必须加,不然会报FileNotFoundException。

    因为上面的目录本身就已经存在,而下面的目录是我们自己创建的。

    mkdir()和mkdirs()有什么区别?

    区别:mkdir()只能创建一层目录,如 File file = new File("c:/aa");即只能在已经存在的目录中创建文件夹

             mkdirs()可以创建多层目录,如 File file = new File("c:/aa/bb"); 即可以在不存在的目录中创建文件夹

       

       

  • 相关阅读:
    Sample Page
    3.21之前刷题总结
    存储过程动态组建查询where语句
    SQL常备知识
    学习SilverLight:(1)SilverLight3.0和JavaScript交互
    SQL SERVER 2005 Tempdb
    学习atlas
    sql server系统表详细说明(转)
    js 基数排序的过程
    vuerouter 刷新页面后 url地址不变 参数还在 保留当前页 routerlink取值 this.$route
  • 原文地址:https://www.cnblogs.com/wyqfighting/p/3071314.html
Copyright © 2011-2022 走看看