java中使用相对路径读取文件的方法:1、使用文件【File file = new File(“src/test.txt”)】方法;2、使用类的相对路径;3、使用当前线程的类加载器;4、读取web工程下的文件。

【相关学习推荐:

java中使用相对路径读取文件的方法:

一、简单粗暴的 File file = new File(“src/test.txt”);@Test

/**

* 这种方法 “” 空代表的是 这个Java项目 TestSomeTechnology 由于实际项目在打包后没有src目录 所以这种方法不常用

*/

public void testMethod1() throws IOException{

File file = new File("src/test.txt");

BufferedReader br = new BufferedReader(new FileReader(file));

String len = null;

while ((len=br.readLine())!=null){

System.out.println(len);

}

}

二、使用类的相对路径

TestRelativePath.class.getResource(“/test.txt”).getFile()@Test

/**

* 使用类的相对路径

* 这种方法 “/” 代表的是bin。 src文件夹和resources 文件夹下的的东西都会被加载到bin下面 因为这两个文件被配置为了source

*/

public void testMethod2() throws IOException{

File file = new File(TestRelativePath.class.getResource("/test.txt").getFile());

BufferedReader br = new BufferedReader(new FileReader(file));

String len = null;

while ((len=br.readLine())!=null){

System.out.println(len);

}

}

三、使用当前线程的类加载器

Thread.currentThread().getContextClassLoader().getResource(“test.txt”).getFile()@Test

/**

* 这种是通过当前线程的类加载器

* 这种方法 “ ” 空代表的是bin 。 于是就直接填写test,文件夹下的的东西都会被加载到bin下面,因为这两个文件被配置为了source

*/

public void testMethod3() throws IOException{

File file = new File(Thread.currentThread().getContextClassLoader().getResource("test.txt").getFile());

BufferedReader br = new BufferedReader(new FileReader(file));

String len = null;

if ((len=br.readLine())!=null){

System.out.println(len);

}

}

四、读取web工程下的文件 使用getRealPath()读取

目录如下 :

读取 index.jsp@WebServlet(name = "TestServlet",urlPatterns = "/TestServlet")

public class TestServlet extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request,response);

}

/**

* web工程的根目录是 webRoot, 使用 “/” 代表webroot webroot下面有index.jsp文件

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

File file = new File(getServletContext().getRealPath("/index.jsp"));

BufferedReader br = new BufferedReader(new FileReader(file));

String len = null;

while ((len=br.readLine())!=null){

System.out.println(len);

}

}

}

读取 test.txt文件

不过如果想读取test.txt 的话 我们可用用上面的方式File file = new File(Thread.currentThread().getContextClassLoader().getResource("test.txt").getFile());

也可以使用 getRealPath()

不过由于是以 webroot为根目录 我们需要从classes里面读:idea的classes等价于esclipse的classpath 。classes说明:

代码:File file = new File(getServletContext().getRealPath("/WEB-INF/classes/test.txt"));

getResourceAsStream()方法详解

getResourceAsStream()用法与getResouce()方法一样的,用getResource()取得File文件后,再new FileInputStream(file) 与 getResourceAsStream() 的效果一样。。

两个代码效果一样InputStream inputStream1 = new FileInputStream(new File(Thread.currentThread().getContextClassLoader().getResource("test.txt").getFile()));

InputStream inputStream2 = Thread.currentThread().getContextClassLoader().getResourceAsStream("test.txt");

java中相对路径怎么写_java中如何使用相对路径读取文件相关推荐

  1. Java中field的覆写_Java中方法的覆写

    [套装4本]java编程思想4第4版+ 402.5元 包邮 (需用券) 去购买 > 一.方法的重写概念 之前说了子类如果继承了一个父类,那么子类就会拥有父类的方法(不包括构.造方法)和属性,此时 ...

  2. java编程中相对路径怎么写_Java编程中的绝对路经和相对路径

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:xyz est.txt 代表了test.txt文件的绝对路径.相对路径:相对与某个基 ...

  3. linux java 获取路径怎么写_linux中java获取路径的实例代码

    linux中java获取路径怎么写? 在Unix/Linux中,路径的分隔采用正斜"/",比如"cd /home/java". 在java的代码开发中 \ 是代 ...

  4. linux java 获取路径怎么写_linux中java获取路径怎么写?

    linux中java获取路径怎么写? 在Unix/Linux中,路径的分隔采用正斜"/",比如"cd /home/java". 在java的代码开发中 是代表转 ...

  5. java file 相对路径 根目录修改_java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)...

    https://blog.csdn.net/my__sun_/article/details/74450241 读取文件的写法,相对路径 在当前的目录结构中读取test.txt的有四种写法 简单粗暴的 ...

  6. java中输出时 什么作用_JAVA中输入和输出处理(Java I/O)重点总结

    文件-使用File类操作文件: 什么是文件?  文件可认为是相关记录或放在一起的数据的集合. 文件一般存储在哪里?  储存在存储设备里. Java程序如何访问文件?  Java API:java.io ...

  7. java 文件路径怎么写_java本地文件路径怎么写

    1. java里文件路径怎么写 File file = new File("D:\\123.txt"); 你这种不用绝对路径是不行的, 只有一个方法,在web工程启动servlet ...

  8. java的异常有哪些类_Java中的异常类型有哪些

    1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...

  9. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

最新文章

  1. 干货|使用合成数据集来做目标检测
  2. 【图灵奖大佬】Yoshua Bengio最新《深度学习》教程
  3. mysql缓存淘汰机制_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....
  4. c语言20字节的内存的数据怎么读取_C++编程-内存对齐
  5. ALFNet行人检测
  6. OpenCV区域提取之利用Rect提取在源代码中预先定义好的区域
  7. 自写网站阶段之:终结篇
  8. 全程图解:Centos 5.2 下 ORACLE10G 安装配置
  9. 前端学习(2337):angular之管道
  10. 前端学习(1764):前端调试值之性能分析的方法二
  11. 江苏大学计算机学院宋美如,姜震-江苏大学计算机科学与通信工程学院
  12. MiniApp微信小程序入口在安卓手机桌面
  13. s2jh mysql_mysql 一对多 查询 出一行数据
  14. SetTimer函数用法
  15. FAT32文件系统详解
  16. Word一行排列多个图片并插入题注
  17. 服务器上qq邮件不能打开方式,QQ邮箱打不开的处理方法
  18. 计算机 不识u盘,电脑uefi不识别u盘怎么办
  19. 第十九次ScrumMeeting博客
  20. 四、从数字中发现规律?

热门文章

  1. Android, IOS, 游戏开发者如何选择及赢利
  2. word忘记密码如何打开
  3. 【2012校园招聘】中兴
  4. 小度智能音箱=高灵敏度窃听器
  5. Solid Edge与UG格式互换问题
  6. 仿迅雷播放器教程 -- 媒体播放三大底层架构简析 (3)
  7. 西北工业大学#面向对象编程实验#实验四->第一题
  8. Js读取Cookie中指定字段的值,Js中读取某个Cookie,Js中根据Cookie的key得到对应的value,Js正则表达式匹配指定的Cookie
  9. cocos studio 下载地址
  10. 【BCT_RFC6762】 多播DNS