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"); 即可以在不存在的目录中创建文件夹

       

       

  • 相关阅读:
    每个计算机科学专业的学生都应该知道些什么?
    Java中String类型转换成日期类型
    Java基础知识点总结
    JDBCJava连接MySql数据库
    MySql知识点全面总结
    PHP根据键值合并数组,键值一样的合并
    [幼儿园室外设计]幼儿园室外设计的四大原则是什么?
    [闭环步进电机]什么是闭环步进电机?闭环步进电机有什么优势?
    什么是php面向对象及面向对象的三大特性
    关于幼儿园空间设计常见的五大问题,你们园有注意吗?
  • 原文地址:https://www.cnblogs.com/wyqfighting/p/3071314.html
Copyright © 2011-2022 走看看