本文共 1699 字,大约阅读时间需要 5 分钟。
下面的new File(String url)的方式在window中可以找到路径,但是单独部署jar文件时,获取到的URL路径是带有jar的
String infile = this.getClass().getClassLoader().getResource("").getFile()+"malls.json"; StringBuffer sb = new StringBuffer() ; BufferedReader br = null ; try { br = new BufferedReader(new FileReader(infile)) ; String s=null ; while((s=br.readLine()) !=null){ sb.append(s) ; } br.close(); } catch (FileNotFoundException e) { log.error("FileNotFoundException:"+e); } catch (IOException e) { log.error("IOException:"+e); }finally { if(br !=null){ try { br.close(); } catch (IOException e) { log.error("close br error:"+e); } } }
正确的是写法是采用流的方式进行处理,同时读取流时设置编码utf-8
InputStream stream = getClass().getClassLoader().getResourceAsStream("malls.json") ;// log.info("infile:"+infile); StringBuffer sb = new StringBuffer() ; BufferedReader br = null ; try { br = new BufferedReader(new InputStreamReader(stream,"UTF-8")) ; String s=null ; while((s=br.readLine()) !=null){ sb.append(s) ; } br.close(); } catch (FileNotFoundException e) { log.error("FileNotFoundException:"+e); } catch (IOException e) { log.error("IOException:"+e); }finally { if(br !=null){ try { br.close(); } catch (IOException e) { log.error("close br error:"+e); } } }
转载地址:http://fhadi.baihongyu.com/