`

【杂谈】关于文件路径方面的小麻烦

阅读更多

写程序的时候经常引用外部资源,这个时候通过文件路径定位就相当重要了。

 

问题提出

       在Eclipse工程中写一段代码,想要调用工程中的某一个资源文件。

File file=new File("/EclipseProj/res.txt");
.... //读取文件

       一运行,总是说res.txt找不到。只要将路径改成"EclipseProj/tes.txt"即可。不知为什么?

 

症结所在

       没有搞清楚相对路径中' / '的作用,"/Director/File"与"Director/File"完全是两个不同的路径。

       下面详细看看文件路径的表示。

       关于文件路径的表示一般两种:绝对路径 相对路径

       1、绝对路径

            很简单,举个例子  e:/everywork/cwf/WriteFree/resource.txt

            这种从根目录开始一级一级目录完全表示出来的形式就是绝对路径。

       2、相对路径

            (1)  WriteFree/resource.txt 形式

            这种形式是相对与当前目录 而言的。如果你当前所在的目录是e:/everywork/cwf/,你们系统会在这个目录下寻找WriteFree/resource.txt,自然和绝对路径是一样的。当然,如果当前目录是e:/,这样就在e盘符下的第一级目录中寻找WriteFree/resource.txt,其实也就是e:/WriteFree/resource.txt。

            (2)  /WriteFree/resource.txt 形式

            这种以 '/' 开头的相对路径形式很有迷惑性。

            通常我们使用 '/' 来表示根目录 ,/WriteFree/resource.txt就表示resource.txt文件在系统的根目录上的WriteFree目录里。但是这样使用对于初学者来说是具有风险性的,因为要知道这里所指的根目录并不是你的当前目录,而是你资源所在的磁盘的根目录, 也就是所跟目录是c:/  e:/  g:/之类的。那么这种相对路径形式其实是相对于根目录而言,等同于绝对路径e:/WriteFree/resource.txt。

 

下面我们在Eclipse中写一个读工程内资源文件的例子来看看:
(1)用Eclipse建立一个工程WriteFree放在e:\everywork\cwf目录下,然后在工程中放入资源文件res/resource.txt
(2)在WriteFree工程下编写代码:

File f1=new File("res/resource.txt");
System.out.println("f1:"+f1.getAbsoluteFile());
File f2=new File("/res/resource.txt");
System.out.println("f2:"+f2.getAbsoluteFile());
//运行结果如下:  f1:  e:\everywork\cwf\WriteFree\res\resource.txt
//                       f2:  e:\res\resource.txt 

(3)结果很明显,小小的差别导致f1和f2两个路径截然不同

 

 

 

分享到:
评论

相关推荐

    ASP生成静态Html文件技术杂谈.pdf

    ASP生成静态Html文件技术杂谈.pdf

    JAVA杂谈

    当你在命令行中看到类文件的加载路径时,你会发现这些类文件最初来自于`JRE/lib`下的`.jar`文件,但实际上,它们是通过`JDK`的安装路径被引入的,这一点通过路径中的`j2sdk1.4.2_03`字样可以明确看出,证实了`JRE`...

    程序设计经验杂谈,程序设计,经验杂谈

    在编程世界中,程序设计是一项核心技能,涵盖了多种技术和方法。程序设计经验杂谈涉及到的不仅仅是语法...在"程序设计经验杂谈"的资料中,你将找到更多关于这些话题的深入探讨和实用建议,帮助你在编程旅程中不断成长。

    尼康优化校准机内设置杂谈

    尼康优化校准机内设置杂谈深入探讨了RAW与JPEG两种图像格式之间的根本区别,这对于摄影爱好者和专业摄影师来说至关重要。RAW格式保留了传感器捕获的原始数据,提供了广泛的后期调整空间,包括色彩、曝光、对比度和...

    Java学习杂谈1-12

    Java学习杂谈系列涵盖了许多关于Java编程的基础概念和机制,以下是对这些知识点的详细解读: 1. **动态加载机制**: 动态加载机制是Java语言的一个关键特性,它使得程序在运行时才能确定哪些类需要加载。当你声明...

    ERP实施杂谈ERP实施杂谈.doc

    ERP实施杂谈ERP实施杂谈

    为己杂谈学习精要.doc

    本文档《为己杂谈学习精要.doc》主要探讨了个人修养、企业文化、管理理念以及如何在职业生涯中找到良好发展平台的主题。作者引用了老子的哲学思想,并结合《论语》中的教诲,阐述了一种既考虑个人利益又兼顾他人和...

    杂谈HP0-091考试

    【压缩包子文件的文件名称列表】中的"杂谈HP0-091考试 .doc"表明文档包含了关于这个主题的详细讨论。这个文档可能包含了考试大纲解析、各个部分的权重分析、推荐的学习资源、模拟试题、解题方法、考试注意事项,甚至...

    高并发架构一些技术套路杂谈

    ### 高并发架构设计 #### 一、高并发架构的核心挑战及应对策略 高并发架构设计的核心在于如何处理大量的并发请求,确保系统的稳定性和高效性。面对数据量大、访问突增、流量大等问题,通常需要采取一系列的技术...

    地产杂谈系列之五:细数主流商管企业,经营发展各有千秋.pdf

    报告名为“地产杂谈系列之五:细数主流商管企业,经营发展各有千秋”,说明报告旨在详细探讨当前中国地产行业中商业物业管理(商管)企业的经营发展状况,并对其主要企业进行比较分析。从报告内容来看,这份文档是一...

    地产行业杂谈系列之十六:社区增值服务模式初探.pdf

    地产行业杂谈系列之十六:社区增值服务模式初探

    Spring杂谈

    本杂谈将围绕Spring框架的多个重要方面展开讨论,涉及事务处理、MVC模式、AOP实现、资源管理以及JDBC与ORM的支持等内容。 在讨论Spring杂谈之前,有必要对IoC(控制反转)和DI(依赖注入)的概念进行说明。IoC是一...

    程序设计经验杂谈

    "程序设计经验杂谈"的资料可能涵盖以上提到的一些方面,通过阅读其中的".chm"文件,你可以深入了解更多具体的实践经验和技巧,进一步提升你的编程水平。记住,编程不仅是技术的运用,更是解决问题的艺术,不断学习和...

    杂谈,一些工具类的集合

    这样的集合可能包括数据处理、文件操作、网络通信、日志记录等多个方面的工具。标题和描述中的"杂谈,一些工具类的集合"可能指的是一个涵盖多种工具的资源包,旨在解决日常开发中的各种问题。 首先,我们来探讨一下...

    java杂谈

    ### Java杂谈:深入理解Java的关键概念 #### 动态加载机制:理解OOP思想的桥梁 Java作为一种纯粹的面向对象编程语言,其设计之初便致力于简化和优化面向对象编程(OOP)的概念,使之更加直观易懂。动态加载机制便是...

    关于淘宝流量杂谈.docx

    内容需求方面,创造吸引潜在客户的广告形式至关重要。这可能包括提供超值的视觉体验,以刺激消费者的购买欲望。同时,针对老客户的激励政策也能促进客户基数增长。 最后,广告与活动的配合应以提高流量转化为目标。...

Global site tag (gtag.js) - Google Analytics