zoukankan      html  css  js  c++  java
  • java基础--->文件操作--->实例---->文件存放路径:绝对路径和相对路径

    内容概述:

      在实际的工程中,有时会需要存储一些文件,如存放一些图片、数据文件等,存放这些文件时考虑将这些文件存放在哪里。

      通常有两种方法来获取文件存放路径:

        方法一,获取系统有效盘符  如D:/,然后进行路径扩展,将扩展后的路径作为存放这些文件的根路径。这种方法有一个缺点,那就是在不同的操作系统中进行程序迁移时,会很麻烦;

        方法二,获取当前文件夹(即程序工程目录)如d:/projectName,然后进行路径扩展,将扩展后的路径作为存放这些文件的根路径。最终存放程序文件的目录和程序代码目录在同一个文件夹下。这种方法是更为常用的方法,使用这种方法编写的程序更易于在不同操作系统中迁移,也方便与程序的管理,如程序卸载时,删除整个程序文件夹可以保证程序数据也被清理掉,而使用“方法一”编写的程序则不能保证将程序数据文件删除掉,需要使用者手动寻找到该程序的数据文件的存放路径,然后手动删除。

      下面的代码举例说明了上述两种方法的java编程实现:

    /**
     * @author lxrm
     * @date 20161115
     * @description 不同计算机的系统盘符是不相同的,有的计算机有“C:” "D:" "E:" "F:"
     *                 但是有些计算机只有C盘和D盘,还有Linux系统中系统盘符是/home等
     *                 本程序举例说明如何获取本地计算机中的有效盘符
     * */
    package file_operation;
    
    import java.io.File;
    import java.io.IOException;
    
    public class Example8_getEffectiveDisks {
        public static void main(String[] args){
    /*一、获取本机有效盘符,C: D: E: ...
     *   这是获取绝对可用路径的方法(不常用),一般使用“二”中所描述的获取相对路径的方法来存放想要存放的数据、文件..
     */
            File[] roots=File.listRoots();
            System.out.println("本地计算机的有效盘符有:");
            for(int i=0;i<roots.length;i++){
                System.out.println(roots[i].getAbsolutePath());
            }
            
            String rootPath=roots[1].getAbsolutePath();//选定上述列表中最后一个磁盘作为下面所要使用的根目录
            String path=rootPath+"/LeapMotionData/FrameData";//Frame对象数据的存放目录
            System.out.println("LeapMotion采样所得数据将会被放置在以下目录中:
    "+path);
            File dir=new File(path);
            if(!dir.exists()){
                dir.mkdirs();
            }
            System.out.println(dir.getAbsolutePath()+"是否存在:"+dir.exists());
    /*二、获取当前文件夹
    *   这是获取相对路径的方法(常用),便于程序在不同的计算机OS中迁移
    *   获得当前工程所在文件夹,如本例中是D:workspaceOfJavaEclipsejavaTest
    */
            File root2=new File(".");//获得当前文件夹(即工程目录),结果D:workspaceOfJavaEclipsejavaTest
            //File root2=new File("..");//获得当前文件夹的父文件夹,结果D:workspaceOfJavaEclipse
            try {
                String rootDir2=root2.getCanonicalPath();
                System.out.println("当前工程所在文件夹:"+rootDir2);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }//end main
    
    }
    学习的过程中总会得到一些心得体会,认真地将它们记录下来并分享给每一个愿意花费时间去阅读它们的人,然后意外地收获某个读者的评论,从而激发出新的感想,是一件十分令人欢快的事。如果你也在研习这方面的知识,欢迎加入到我们的队伍中来,和我们一起进步吧(^_^)
  • 相关阅读:
    函数式编程(二):curry
    函数式编程(一):纯函数
    用 gulp 建一个服务器
    深度学习-Tensorflow2.2-预训练网络{7}-迁移学习基础针对小数据集-19
    深度学习-Tensorflow2.2-自定义训练综合实例与图片增强{6}-猫狗数据集实例-18
    深度学习-Tensorflow2.2-Tensorboard可视化{5}-可视化基础-17
    深度学习-Tensorflow2.2-Eager模式与自定义训练{4}-微分运算训练练习-16
    深度学习-Tensorflow2.2-卷积神经网络{3}-电影评论数据分类/猫狗数据集实例-15
    深度学习-Tensorflow2.2-批标准化简介-14
    深度学习-Tensorflow2.2-卷积神经网络{3}-卫星图像识别卷积综合实例(二分类)-13
  • 原文地址:https://www.cnblogs.com/lxrm/p/6096727.html
Copyright © 2011-2022 走看看