上篇说道不用File,而是用getResourceAsStream()来读取文件
下面是一个在res资源文件夹下读取某一resource.txt文件的DEMO
package com.japher.j2se.InputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
*
* @author liujie,sd4886656@163.com
*
*/
public class TestInputStream
{
public static void main(String [] art)
{
InputStream in = Reader.getInstance().getResourceAsStream("/resource.txt");
if(in == null)
throw new RuntimeException("read error");
try {
System.out.println(Reader.asString(in));
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Reader
{
private static Reader instance;
/*保持单例*/
public static Reader getInstance()
{
if(instance == null)
instance = new Reader();
return instance;
}
/*读取为InputStream*/
public synchronized InputStream getResourceAsStream(String path)
{
return this.getClass().getResourceAsStream(path);
}
/*将InputStream转换为String*/
public static String asString(InputStream in) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
StringBuffer buf = new StringBuffer();
String line;
while (null != (line = br.readLine())) {
buf.append(line).append("\n");
}
return buf.toString();
}
}