1 public static String getFileStr(String filePath) {
2 InputStream is = null;
3 BufferedInputStream bis = null;
4 ByteArrayOutputStream bos = null;
5 byte[] buffer = new byte[1024];
6 int length = 0;
7 try {
8 is = FileUtil.class.getClassLoader().getResourceAsStream(filePath);
9 bis = new BufferedInputStream(is);
10 bos = new ByteArrayOutputStream();
11 while((length = bis.read(buffer)) != -1) {
12 bos.write(buffer, 0, length);
13 }
14 bos.flush();
15 String str = bos.toString("UTF-8");
16 return str;
17 } catch (Exception e) {
18 e.printStackTrace();
19 } finally {
20 try {
21 if(bos != null) {
22 bos.close();
23 }
24 if(bis != null) {
25 bis.close();
26 }
27 if(is != null) {
28 is.close();
29 }
30 } catch (Exception e) {
31 e.printStackTrace();
32 }
33 }
34 return null;
35 }
注意:
一定要使用具体文件的类获取文件流:FileUtil.class.getClassLoader().getResourceAsStream(filePath),有/代表用绝对路径,没有使用相对。
千万不要用:ClassLoader.getSystemResourceAsStream(filePath), 无论加不加/、各种拼路径都读不到文件!!!因为这个浪费了我大量时间!!!