java如何通过绝对路径和相对路径读取文件 | 您所在的位置:网站首页 › java怎样打开文件 › java如何通过绝对路径和相对路径读取文件 |
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 实验室设备网 版权所有 |