java如何通过绝对路径和相对路径读取文件 您所在的位置:网站首页 java怎样打开文件 java如何通过绝对路径和相对路径读取文件

java如何通过绝对路径和相对路径读取文件

2023-10-13 01:54| 来源: 网络整理| 查看: 265

0x00 前言

当我在写java的数据库连接时,希望通过使用文件的相对路径来读取信息,因为使用绝对路径时在代码移植之后就会出现问题,这不是一个好的方法

0x01 概念

绝对路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径

相对路径:由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系

0x02 java通过绝对路径读取文件

文件路径:D:\file\logon_initial.properties

文件内容:

这里写图片描述

读取文件的代码:

import java.io.*; import java.sql.*; import java.util.*; public class DBConnection { public static Connection getDBConnection( ) throws Exception { Properties prop = new Properties(); prop.load(new FileInputStream("D:\\file\\logon_initial.properties")); String drivers = prop.getProperty("drivers"); String url = prop.getProperty("url"); String username = prop.getProperty("username"); String password= prop.getProperty("password"); Class.forName(drivers); //加载驱动程序,JDK7以上版本可以不用 Connection conn= DriverManager.getConnection(url,username,password); //连接数据库 return conn; } public static void Close(Connection conn) throws SQLException{ conn.close(); } }

需要注意的是绝对路径还要转义反斜杠

0x03 java通过src目录读取文件(以src为根目录)

文件路径: D:\javacode\fileread\src\DB\logon_initial.properties

这里写图片描述

代码:

import java.io.*; import java.sql.*; import java.util.*; public class DBConnection { public static Connection getDBConnection( ) throws Exception { Properties prop = new Properties(); prop.load(new FileInputStream("src/DB/logon_initial.properties")); String drivers = prop.getProperty("drivers"); String url = prop.getProperty("url"); String username = prop.getProperty("username"); String password= prop.getProperty("password"); Class.forName(drivers); //加载驱动程序,JDK7以上版本可以不用 Connection conn= DriverManager.getConnection(url,username,password); //连接数据库 return conn; } public static void Close(Connection conn) throws SQLException{ conn.close(); } }

当我们把文件放在Java项目的src\目录下时,可以通过文件的绝对路径来读取,比第一种方法更好一些,注意src前是不需要添加斜杠/的,当然我们也可以把文件放在src目录下,就可以通过读取src/logon_initial.properties来实现

0x04 java通过CLASSPATH路径来读取包内文件(bin目录)

通过这个方法可以用文件的相对路径来读取,比前两个方法更加可靠,需要注意的是要将logon_initial.properties和DBConnection.class处于同一个目录下,只要和当前类的的java源代码同一目录下即可,会自动加载到bin目录下。

这里写图片描述

1).绝对路径

String path = DBConnect.class.getResource(“/DB/logon_initial.properties”).getPath();

2).通过类加载器来读取

String path = 当前类名.class.getClassLoader().getResource("logon_initial.properties").getPath();

代码:

import java.io.*; import java.sql.*; import java.util.*; public class DBConnection { public static Connection getDBConnection( ) throws Exception { Properties prop = new Properties(); prop.load(new FileInputStream(DBConnection.class.getResource("logon_initial.properties").getPath())); String drivers = prop.getProperty("drivers"); String url = prop.getProperty("url"); String username = prop.getProperty("username"); String password= prop.getProperty("password"); Class.forName(drivers); //加载驱动程序,JDK7以上版本可以不用 Connection conn= DriverManager.getConnection(url,username,password); //连接数据库 return conn; } public static void Close(Connection conn) throws SQLException{ conn.close(); } }

这样代码移植之后依然能够读取到文件,方便了很多。

切记是把要读取的文件放在和当前类的java源代码处于同一个包内(src下的目录下)

这里写图片描述

到此就OK了



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有