上述的读取文件的方式,我们可以看到是 “完全没有问题的” 可以读取到对应的配置信息,但是存在一个缺点:就是移除性差。 Src中是在IDEA这个编译器中体现的,如果是在其它的编译器中运行的时候,很大的可能会报错,原因是:这里我们使用的相对路径是,在IDEA中的,IDEA 中的默认相对路径是 在project下的也就是 src 渔采的绝对 的同级目录。 但是其它的系统,或者编译器就可能不是这个和 IDEA 中默认相对路径了。
靠在一起的几家都得了消息,陆家的小四是卖了苇叶的银钱买的猪大肠,听说还买了猪脚和大骨头,说是要炖汤给邱氏吃了下奶。
渔采的绝对: 优化方式一:返回一个文件的绝对路径
当在J Windows 操作系统中编写的绝对路径的Java程序,移植到到 Linux 操作系统中就会报错。 所读取的文件是直接存放在src的目录下的,该文件的并没有其它的的包。 在Windows中的话,就以该系统的文件规则,动态获取到的绝对路径是带盘符的,而 Linux系统中就以该系统的文件规则,获取到的绝对路径是不带盘符的。 接下来说一种比较通用的一种路径:即使代码android换位置了,这样的代码编写的方式仍然是通用的。 如果在 src 目录下的子目录中的文件,需要指明是 src 下的哪个子目录下的文件,同样不要写文件后缀名,不然报错。
- Src中是在IDEA这个编译器中体现的,如果是在其它的编译器中运行的时候,很大的可能会报错,原因是:这里我们使用的相对路径是,在IDEA中的,IDEA 中的默认相对路径是 在project下的也就是 src 的同级目录。
- 接下来说一种比较通用的一种路径:即使代码android换位置了,这样的代码编写的方式仍然是通用的。
- 注意:优化方式三:不可以写文件后缀名,直接写文件名就可以了。
- 上述方式一:我们需要通过 :new 一个 FileInputStream 字节输入流对象的方式,这里我们直接通过指定的文件名的,直接返回一个 InputStream 字节输入流 ,不需要 new 。
- 上述的三种优化方式,都是动态获取绝对路径的,但是都是基于类路径下的文件才行的,不同所读取的文件不在 类路径下 是无法动态获取到对应绝对路径的。
// 获取到该配置文件的的绝对路径,如下src目录下还有目录(包),需要指定 src目录下/包下的哪个文件。 目录前言1.优化方式一:返回一个文件的绝对路径1.1情况一1.2情况二2.优化方式二:返回一个InputStream字节输入流3.优化方式三:java.util包下提供了一个资源绑定器… 原始的方式:写相对路径的话,无法跨编译器;因为不同的编译器默认相对的路径是不同的。 写绝对路径的话,无法跨平台,因为不同操作系统的文件规则是不一样的,比如 Windows系统中的绝对路径是带盘符(D盘,C盘),Linux 渔采的绝对 系统中的文件规则是不带盘符的。
渔采的绝对: 渔采的绝对界线
上述 :优化方式1,优化方式2 可以动态获取到 类路径下的任意文件信息。 但是 优化方式三:只能获取到 类路径下的以.properties后缀的配置文件信息了。 上述这种方式:如果我们不写相对路径,而是写绝对路径的话,也是存在一个问题的。 注意:优化方式三:不可以写文件后缀名,直接写文件名就可以了。 因为资源绑定器,就只能绑定xxx.properties配置文件 ,并且这个文件必须在 类路径下。 上述的三种优化方式,都是动态获取绝对路径的,但是都是基于类路径下的文件才行的,不同所读取的文件不在 类路径下 是无法动态获取到对应绝对路径的。
该资源绑定器:只能绑定xxx.properties配置文件 ,并且这个文件必须在 类路径下,这里的 IDEA 是 src 渔采的绝对 目录下。 上述方式一:我们需要通过 :new 一个 FileInputStream 字节输入流对象的方式,这里我们直接通过指定的文件名的,直接返回一个 InputStream 字节输入流 ,不需要 new 。 GetResource() 获取资源:这是类加载器对象的方法,当前线程的类加载器默认从类的根路径下加载资源。