java中相对路径怎么写_java中如何使用相对路径读取文件
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中如何使用相对路径读取文件相关推荐
- Java中field的覆写_Java中方法的覆写
[套装4本]java编程思想4第4版+ 402.5元 包邮 (需用券) 去购买 > 一.方法的重写概念 之前说了子类如果继承了一个父类,那么子类就会拥有父类的方法(不包括构.造方法)和属性,此时 ...
- java编程中相对路径怎么写_Java编程中的绝对路经和相对路径
1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:xyz est.txt 代表了test.txt文件的绝对路径.相对路径:相对与某个基 ...
- linux java 获取路径怎么写_linux中java获取路径的实例代码
linux中java获取路径怎么写? 在Unix/Linux中,路径的分隔采用正斜"/",比如"cd /home/java". 在java的代码开发中 \ 是代 ...
- linux java 获取路径怎么写_linux中java获取路径怎么写?
linux中java获取路径怎么写? 在Unix/Linux中,路径的分隔采用正斜"/",比如"cd /home/java". 在java的代码开发中 是代表转 ...
- java file 相对路径 根目录修改_java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)...
https://blog.csdn.net/my__sun_/article/details/74450241 读取文件的写法,相对路径 在当前的目录结构中读取test.txt的有四种写法 简单粗暴的 ...
- java中输出时 什么作用_JAVA中输入和输出处理(Java I/O)重点总结
文件-使用File类操作文件: 什么是文件? 文件可认为是相关记录或放在一起的数据的集合. 文件一般存储在哪里? 储存在存储设备里. Java程序如何访问文件? Java API:java.io ...
- java 文件路径怎么写_java本地文件路径怎么写
1. java里文件路径怎么写 File file = new File("D:\\123.txt"); 你这种不用绝对路径是不行的, 只有一个方法,在web工程启动servlet ...
- java的异常有哪些类_Java中的异常类型有哪些
1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...
- java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...
一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...
最新文章
- 干货|使用合成数据集来做目标检测
- 【图灵奖大佬】Yoshua Bengio最新《深度学习》教程
- mysql缓存淘汰机制_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....
- c语言20字节的内存的数据怎么读取_C++编程-内存对齐
- ALFNet行人检测
- OpenCV区域提取之利用Rect提取在源代码中预先定义好的区域
- 自写网站阶段之:终结篇
- 全程图解:Centos 5.2 下 ORACLE10G 安装配置
- 前端学习(2337):angular之管道
- 前端学习(1764):前端调试值之性能分析的方法二
- 江苏大学计算机学院宋美如,姜震-江苏大学计算机科学与通信工程学院
- MiniApp微信小程序入口在安卓手机桌面
- s2jh mysql_mysql 一对多 查询 出一行数据
- SetTimer函数用法
- FAT32文件系统详解
- Word一行排列多个图片并插入题注
- 服务器上qq邮件不能打开方式,QQ邮箱打不开的处理方法
- 计算机 不识u盘,电脑uefi不识别u盘怎么办
- 第十九次ScrumMeeting博客
- 四、从数字中发现规律?
热门文章
- Android, IOS, 游戏开发者如何选择及赢利
- word忘记密码如何打开
- 【2012校园招聘】中兴
- 小度智能音箱=高灵敏度窃听器
- Solid Edge与UG格式互换问题
- 仿迅雷播放器教程 -- 媒体播放三大底层架构简析 (3)
- 西北工业大学#面向对象编程实验#实验四->第一题
- Js读取Cookie中指定字段的值,Js中读取某个Cookie,Js中根据Cookie的key得到对应的value,Js正则表达式匹配指定的Cookie
- cocos studio 下载地址
- 【BCT_RFC6762】 多播DNS