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采样所得数据将会被放置在以下目录中:\n"+path);
        File dir=new File(path);
        if(!dir.exists()){
            dir.mkdirs();
        }
        System.out.println(dir.getAbsolutePath()+"是否存在:"+dir.exists());
/*二、获取当前文件夹
*   这是获取相对路径的方法(常用),便于程序在不同的计算机OS中迁移
*   获得当前工程所在文件夹,如本例中是D:\workspaceOfJavaEclipse\javaTest
*/
        File root2=new File(".");//获得当前文件夹(即工程目录),结果D:\workspaceOfJavaEclipse\javaTest
        //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

}
时间: 2024-08-01 08:07:03

java基础--->文件--->文件存放路径:绝对路径和相对路径的相关文章

Java基础之文件操作

流与文件的操作在编程中经常遇到,与C语言只有单一类型File*即可工作良好不同,Java拥有一个包含各种流类型的流家族,其数量超过60个!当然我们没必要去记住这60多个类或接口以及它们的层次结构,理解和掌握其中比较常用的类和接口即可,必要的时候查询文档或API.我们把流家族成员按照它们的使用方法来进行划分,就形成了处理字节和字符的两个单独的层次结构.                                                                          

Java基础IO文件拷贝练习题

/** * 编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt. */ 1.我们看到这个题还是用大化小的思想来做 分析:1.拷贝 >>> 选择什么流呢??>>>拷贝我在上篇博客中写到,我们用字节流,字符流只读只写 2.java结尾 >> 我们可以想到String中的endsWith()方法. 3.拷贝成功后再改后缀名>>File中有一个后缀名的方法renameTo()的方法 4.

java基础篇---文件上传(组件)

文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,本篇主要说明smartupload组件上传. 在讲解smartupload上传前,我们先来看看不使用组件是怎么完成上传的原理的? 废话不多说直接上代码 import java.io.*; import java.util.*; import javax.servlet.http.HttpServletRequest; import org.apache.commons.fileupload.Fil

jAVA基础 提高文件复制性能之多线程复制文件

利用IO流中的随机访问文件 RandomAccessFile 和文件通道 FileChanne 复制文件可大大提高文件的读写效率,在此基础上利用多线程复制文件使其性能更优.因线程的个数可根据文件的大小及需求而定.其大概原理是根据给定的线程个数,将文件分段,每个线程负责的数据大小=文件长度/线程个数,将不能除尽的部分留给最后一段文件所分配的线程处理.以下是实现代码及自己理解的注释,多有偏差请见谅.下面是兄弟连java培训总结的一些代码:供参考. 程序实现类代码: import java.io.Ra

java基础篇---文件上传(commons-FileUpload组件)

上一篇讲解了smartupload组件上传,那么这一篇我们讲解commons-FileUpload组件上传 FileUpload是Apache组织(www.apache.org)提供的免费的上传组件,可以直接从Apache站点上下载(下载地址:http://commons.apache.org/fileupload/),本文使用的版本是1.2.1,但是FileUpload组件本身还依赖于commons组件,所以从Apache下载此组件的时候还需要连同commons组件的IO包一起下载(下载地址:

JAVA基础篇—文件与流

处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等. 2.InputStreamReader  OutputStreamWriter 处理字符流的抽象类 InputStreamReader 是字节流通向字符流的桥梁,它将字节流转换为字符流. OutputStreamWriter是字符流通向字节流的桥梁,它将

Java基础之文件IO

概述 Java 的 I/O 操作类在包 java.io 下,大概有将近 80 个类,但是这些类大概可以分成四组,分别是: 按处理数据类型来分:字节流和字符流: 基于字节操作的 I/O 接口:InputStream 和 OutputStream 基于字符操作的 I/O 接口:Writer 和 Reader 按传输数据的方式:磁盘操作和网络操作 基于磁盘操作的 I/O 接口:File 基于网络操作的 I/O 接口:Socket 按流的方向来分:输入流和输入流 要读的话就用输入流,要写的话,就用输出流

JAVA基础篇—文件上传下载

/index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&qu

java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中

/** * File文件综合应用 * 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中. *  * 思路:1.需要深度遍历.--递归 * 2.遍历的过程中过滤指定扩展名的文件--过滤器FileNameFilter,将文件存入容器中 * 3.将容器中的内容遍历,写入到指定文件中 * */ 代码:  FilenameFilter 过滤器: package com.lp.ecjtu.File.filter; import java.io.File; import java.i