Java读取相对路径文件Java认证考试

文章作者 100test 发表时间 2010:01:01 15:42:41
来源 100Test.Com百考试题网


  Java读取相对路径文件是的前提也是相对的:文件必须位于classpath下面,否则随便一个相对文件是没法读取的。
  用IDE创建一个工程,一般都会有一个src的目录,这个src就是工程的classpath目录了,只要在src目录或其子目录下的文件,在程序代码中都可以使用相对路径的方式来读取,这里的相对路径和文件系统的相对路径概念上也许有点差异。
  举例来说:
  publicclass TestRead {
  public static String genWscmd(Stringxmlfilename) {
  InputStream in =TestRead.class.getClassLoader().getResourceAsStream(xmlfilename).
  String x = StringFileToolkit.file2String(in, "UTF-8").
  return x.
  }
  public static voidmain(String[] args) {
  String out = genWscmd("sys_ds.xml").
  System.out.println(out).
  }
  }
  1、sys_ds.xml位于src下,路径直接写其名字。但千万别写成“/sys_ds.xml”了,这是错误的,会被认为是绝对路径。
  2、将文件sys_ds.xml移动到mypack包下面,则路径应该写为:mypack/sys_ds.xml,前面还是没有“/”,这点要注意。
  3、必须通过ClassLoader来执行getResourceAsStream()方法。获取ClassLoader有两种方式:
  InputStream in =TestRead.class.getClassLoader().getResourceAsStream(xmlfilename).
  或
  InputStream in = newTestRead().getClass().getClassLoader().getResourceAsStream(xmlfilename).
  4、将一个流转换为字符串的实现如下:
  /**
  * 读取输入流为一个内存字符串,保持文件原有的换行格式
  *
  *@param in 输入流
  * @param charset 文件字符集编码
  *@return 文件内容的字符串
  */
  public static Stringfile2String(InputStream in, String charset) {
  StringBuffersb = new StringBuffer().
  try {
  LineNumberReader reader = new LineNumberReader(new BufferedReader(newInputStreamReader(in, charset))).
  String line.
  while ((line = reader.readLine()) != null) {
  sb.append(line).append(System.getProperty("line.separator")).
  }
  reader.close().
  } catch(UnsupportedEncodingException e) {
  log.error("读取文件为一个内存字符串失败,失败原因是使用了不支持的字符编码" charset, e).
  }catch (IOException e) {
  log.error("读取文件为一个内存字符串失败,失败原因是读取文件异常!", e).
  }
  return sb.toString().
  }

  编辑特别推荐:

  指点一下:到底该不该去考JAVA认证?

  Java认证权威问答精华集



相关文章


J2EE基础:浅谈依赖注入实现的方法Java认证考试
J2ME下漫游(追逐)AI的实现Java认证考试
JSP JavaScript打造二级级联下拉菜单Java认证考试
Java实例:利用java多线程断点续传实践Java认证考试
Java读取相对路径文件Java认证考试
JSP架构、JSP开发工具优缺点比较Java认证考试
ServletJSP线程学习Java认证考试
五步搞定Spring整合StrusJava认证考试
将Java程序注册成系统服务Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛