代码如下:
package com.zb.test;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;import org.apache.log4j.Logger;public class ReadFile {
public static Logger log = Logger.getLogger(ReadFile.class); /**
 * @param args
 */
public static void main(String[] args) {
try {
File getFile = new File("aa.txt"); // 得到相对路径
log.debug(getFile.getPath()); // 得到绝对路径
try {
log.debug(getFile.getCanonicalPath());
}
catch (IOException ioe) {
log.error(ioe.getMessage());
} // 判断文件是否存在
if (getFile.exists()) {
log.debug("文件存在!");
}
else {
log.debug("文件不存在!");
} // BufferedReader getLineDate = new BufferedReader(new InputStreamReader(new FileInputStream("DB.txt")));
// BufferedReader getLineDate = new BufferedReader(new FileReader("DB.txt"));
// BufferedReader getLineDate = new BufferedReader(new FileReader(getFile));
log.debug("0");
// FileReader fileReader = new FileReader(getFile);
FileReader fileReader = new FileReader(
"F:/80_workspace/20081018/cp/aa.txt");
log.debug("1");
BufferedReader getLineDate = new BufferedReader(fileReader);
log.debug("2");
}
catch (NullPointerException npe) {
log.error(npe.getMessage());
}
catch (FileNotFoundException fnfe) {
log.error(fnfe.getMessage());
}
}
}
===========================================================================================================================
控制台信息如下:
log4j: Parsing for [root] with value=[stdout].
log4j: Level token is [stdout].
log4j: Category root set to DEBUG
log4j: Parsing for [com.zb] with value=[debug,stdout].
log4j: Level token is [debug].
log4j: Category com.zb set to DEBUG
log4j: Parsing appender named "stdout".
log4j: Parsing layout options for "stdout".
log4j: Setting property [conversionPattern] to [[%d{yyyy-MM-dd HH:mm:ss SSS}][%-4p][%t]%c[%M] - %L: %m%n].
log4j: End of parsing for "stdout".
log4j: Setting property [target] to [System.out].
log4j: Parsed "stdout" options.
log4j: Handling log4j.additivity.com.zb=[null]
log4j: Finished configuring.
[2008-10-19 23:37:59 812][DEBUG][main]com.zb.test.ReadFile[main] - 24: aa.txt
[2008-10-19 23:37:59 812][DEBUG][main]com.zb.test.ReadFile[main] - 28: F:\80_workspace\20081018\cp\aa.txt
[2008-10-19 23:37:59 812][DEBUG][main]com.zb.test.ReadFile[main] - 39: 文件不存在!
[2008-10-19 23:37:59 812][DEBUG][main]com.zb.test.ReadFile[main] - 45: 0
[2008-10-19 23:37:59 812][ERROR][main]com.zb.test.ReadFile[main] - 56: F:\80_workspace\20081018\cp\aa.txt (系统找不到指定的文件。)
=================================================================================================================================
文件结构如下:
(无法上传图片)
=================================================================================================================================
是什么原因造成的?
注:绝对路径和相对路径都试了。

解决方案 »

  1.   

    你的文件要放到当前的工作目录下才行啊
    你在程序中把System.getProperty("user.dir");
    打印出来看看是在哪个文件夹,就把aa.txt放到哪个文件夹下吧
      

  2.   

    谢谢“qusic”,问题解决,是要将要读的文件放到工作目录下,而不是classes的根目录或web-inf中。
    我建立的是一个web project,测试的java是以application方式的运行,以为只要将要读的文件放到JavaSource文件夹下即可,但是错了,应该放到项目文件夹下。谢谢!
     
    结贴。