maven项目中,读取存放在src/main/resources中的文件my.txt
项目结构如图:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.net.URL;
import com.redkite.sys.web.UserController;
public class ReadFile {
//字符编码
private static String ENCODING = "GBK";
public static void main(String[] args) throws Exception{
InputStreamReader read = null;
//这个 ReadFile 换成其他包中的其他类也可以,就比如换成 UserController 也是一样的
String filePath = ReadFile.class.getClassLoader().getResource("my.txt").getPath();
/* 通过类加载器获取资源文件的URL
* URL url = getClass().getClassLoader().getResource("my.txt");
* String filePath = url.getPath();
* 其实这个和上面那个方法是一样的,因为:ReadFile.class.getClassLoader().getResource("my.txt")的返回值就是URL。
*/
File file = new File(filePath);
try {
read = new InputStreamReader(new FileInputStream(file),ENCODING);
//文件流是否存在
if(file.isFile() && file.exists()){
@SuppressWarnings("resource")
BufferedReader bufferedReader = new BufferedReader(read);
String txt = null;
while((txt = bufferedReader.readLine()) != null){
System.out.println(txt);
}
}else{
throw new Exception("文件不存在");
}
} catch (Exception e) {
throw e;
}finally{
//关闭文件流
read.close();
}
}
}
输出的结果: