易截截图软件、单文件、免安装、纯绿色、仅160KB

Java相对路径读取文件


不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文件的问题,这与Java底层的实现有关,不能算bug,只要方法得当,问题还是可以解决的。
 
项目的文件夹结构:
repathtest 
├─src 
│    └─com 
│            └─lavasoft 
│                    ├─test 
│                    └─res 
├─doc
 
 
 
1、在Java开发工具的project中使用相对路径
在project中,相对路径的根目录是project的根文件夹,在此就是repathtest文件夹了。
创建文件的写法是:
File f = new File("src/com/lavasoft/res/a.txt");
 
File f = new File("doc/b.txt");
 
注意:
路径不以“/”开头;
脱离了IDE环境,这个写法就是错误的,也并非每个IDE都如此,但我见到的都是这样的。
 
2、通过CLASSPATH读取包内文件
读取包内文件,使用的路径一定是相对的classpath路径,比如a,位于包内,此时可以创建读取a的字节流:
InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");
有了字节流,就能读取到文件内容了。
 
注意:
这里必须以“/”开头;
 
3、看看完整的测试代码
package com.lavasoft.test; 
import java.io.*; 
/** 
* Java读取相对路径的文件 

* @author leizhimin 2010-1-15 10:59:43 
*/ 
public class ReadFile { 
        public static void main(String[] args) { 
                readTextA_ByClassPath(); 
                readTextA_ByProjectRelativePath(); 
       &n


相关文档:

如何在java swing/awt中单击右键弹出一个菜单(转)

很多人都知道在swing中加入jPopupMenu组件后可以在鼠标的驱动下探出一个菜单,但是,如果用一般做法,在界面上单击左键也会弹出菜单,那么有没有办法在只有单击右键才弹出菜单呢?其实只是用到了一个小技巧。 你的弹出鼠标菜单鼠标驱动选择 MouseReleased 然后再在监听事件的方法中加入下面的代码就可以了: if(evt.isPop ......

java编码规范_缩进和注释

1.       缩进排版(Indentation)
4个空格常被作为缩进排版的一个单位。缩进的确切解释并未详细指定(空格 vs. 制表符)。一个制表符等于n个空格(视具体的编辑器而定,Eclipse默认一个制表符为4个字符)。
3.1    行长度(Line Length)
尽量避免一行的长度超过80个字符,因为很 ......

java编码规范_空白和命名规范

1.       空白(White Space)
7.1  空行(Blank Lines)
空行将逻辑相关的代码段分隔开,以提高可读性。下列情况应该总是使用两个空行:
·一个源文件的两个片段(section)之间
·类声明和接口声明之间
下列情况应该总是使用一个空行:
·两个方法之间
·方 ......

java命名规范_编程惯例和代码范例

1.       编程惯例(Programming Practices)
9.1  提供对实例以及类变量的访问控制(Providing Access to Instance and Class Variables)
若没有足够理由,不要把实例或类变量声明为公有。通常,实例变量无需显式的设置(set)和获取(gotten),通常这作为方法调用的边缘效应 (side effect ......

JAVA NIO学习笔记 缓冲区的内部细节

缓冲区内部细节
状态变量
状态变量是前一节中提到的"内部统计机制"的关键。每一个读/写操作都会改变缓冲区的状态。通过记录和跟踪这些变化,缓冲区就能够内部地管理自己的资源。
可以用三个值指定缓冲区在任意时刻的状态:
position
limit
capacity
Position
缓冲区实际上就是美化了的数组。在从通道读取时,您 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号