`
cectsky
  • 浏览: 45889 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

【java】由读取properties文件联想到的......

阅读更多

下午闲来无事,看了一个教程,关于读取properties的方法,其实,这种代码网上一大片一大片的,都懒的看了。说说我联想到了什么吧。

 

 首先是getResourceAsStream()方法,就是从stream中获取resource而已,那么这个方法是谁提供的呢?

 

角色之一:ClassLoader

 

 public InputStream getResourceAsStream(String name) {
 URL url = getResource(name);
 try {
     return url != null ? url.openStream() : null;
 } catch (IOException e) {
     return null;
 }
    }
这里都是要找老子帮忙的,他爸是李刚吧,nonono,是Bootstrap刚。。。
public URL getResource(String name) { 
 URL url;
 if (parent != null) {
     url = parent.getResource(name);
 } else {
     url = getBootstrapResource(name);
 }
 if (url == null) {
     url = findResource(name);
 }
 return url;
    }
其中url.openStream()打开Stream,具体如下:
public final InputStream openStream() throws java.io.IOException {
 return openConnection().getInputStream();
}

 

好吧,我承认一看到openConnection就想到JDBC了。其实吧,资源啥的我也不太了解。看看getSystemResource

public static URL getSystemResource(String name) {
	ClassLoader system = getSystemClassLoader();
	if (system == null) {
	    return getBootstrapResource(name);
	}
	return system.getResource(name);
    }

 

就是首先获取SystemClassLoader,如果失败,则去找BootstrapResource  谁让BootstrapLoader是老大呢。

底层是调用了这个方法获取资源的。

static URLClassPath getBootstrapClassPath() {
        return sun.misc.Launcher.getBootstrapClassPath();
    }

 bak1:此处就引发了ClassLoader的加载机制,放在下篇学习。

 

角色之二:Class

中午吃饭的时候还和同事讨论ClassLoader的一些东西,暂时先看下Class吧

public InputStream getResourceAsStream(String name) {
        name = resolveName(name);
        ClassLoader cl = getClassLoader0();
        if (cl==null) {
            // A system class. 有的class是没有loader的,so this nei~~
            return ClassLoader.getSystemResourceAsStream(name);
        }
        return cl.getResourceAsStream(name);
    }

 resolved完成path后,依然是由ClassLoader去处理,此处莫非是代理模式,我日,设计模式离我这么遥远吗??

bak2:此处就引发了设计模式,放在下篇学习

 

总结:其实我想说的是,萝卜青菜,各有所爱,不是不爱,是吃饱了

 

 

分享到:
评论

相关推荐

    java 读取properties文件代码

    读取Properties文件是Java开发中的常见操作,特别是在需要根据配置文件动态改变程序行为的时候。下面我们将详细探讨如何在Java中读取Properties文件。 首先,你需要确保你的项目中包含了一个Properties文件,比如`...

    Python实现读取Properties配置文件的方法

    在Python编程中,有时我们需要处理Java开发中常用的`.properties`配置文件。虽然Python标准库并未直接提供处理此类文件的模块,但我们可以自定义一个类来实现这个功能。本篇文章将详细探讨如何通过Python来读取并...

    Java读取.properties文件

    在Java编程中,读取`.properties`文件是常见的任务,这些文件通常用于存储配置信息,如数据库连接字符串、系统设置等。`.properties`文件是一种基于键值对的文本格式,易于编写和理解。本篇文章将深入探讨如何在Java...

    读取properties文件返回map

    本篇将详细讲解如何在Java中读取`properties`文件并将其内容转换为`Map`对象。 1. **properties文件结构** `properties`文件的结构非常简单,每行代表一个键值对,键和值之间用等号`=`或冒号`:`分隔。例如: ``` ...

    java完美读取properties文件

    本篇文章将详细讲解如何在Java中“完美”地读取`properties`文件。 首先,我们需要了解`properties`文件的基本结构。它是一个文本文件,其中键值对以`key=value`的形式存储,每一行代表一个键值对,注释以`#`或`!`...

    java 动态修改Properties,src下或者指定路径

    在Java编程中,有时我们需要在运行时动态地修改配置文件,比如Properties文件。Properties文件是Java用来存储配置信息的一种常见方式,通常包含了应用的各种参数设置。然而,一旦将应用程序打包成JAR,内部的资源...

    java实现properties文件读取

    在提供的`ConfigInfo.java`文件中,可能包含了实现Properties文件读取的具体逻辑,而`readme.txt`可能是指导如何使用这个类或者解释代码功能的文档。如果你需要查看具体实现,可以查阅这两个文件。通过分析`Config...

    java读取.properties配置文件的几种方法

    在Java编程中,读取`.properties`配置文件是常见的任务,这些文件通常用于存储应用程序的配置参数、系统设置等信息。下面将详细介绍几种在Java中读取`.properties`配置文件的方法。 1. 使用`java.util.Properties`...

    java读取ShapeFile文件的源代码.pdf

    Java 读取 ShapeFile 文件的源代码解析 ShapeFile 是一种常用的 GIS 文件格式,用于存储地理空间数据。 Java 语言可以通过各种库和框架来读取 ShapeFile 文件。下面将对 Java 读取 ShapeFile 文件的源代码进行解析...

    在javascript文件中读取properties文件需要的插件jquery.i18n.properties-min-1.0.9.js

    在JavaScript环境中,与Java或服务器端语言不同,我们通常无法直接读取.properties文件,因为浏览器安全限制禁止了这种跨域请求。然而,为了在前端实现国际化(i18n)功能,有时候我们需要在JavaScript文件中读取...

    java对properties文件的操作.pdf

    本文将详细讲解如何在 Java 中读取、修改和删除 `.properties` 文件的内容。 1. **资源文件的位置** 在 Java 应用程序中,`.properties` 文件一般存放在类路径 (classpath) 下,特别是放在工程项目的 `class` 包下...

    java读取本地.db文件实例

    在测试过程中,可以创建一个名为`Test.java`的类,模拟上述步骤来读取数据库中的数据。例如: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql....

    c#操作properties,读写配置文件

    除了`Properties.Settings`类之外,还可以使用`ConfigurationManager`类来读取配置文件中的设置。这种方式适用于那些不希望在代码中硬编码配置项名称的情况。 1. **读取设置**: ```csharp string value = ...

    JAVA读取properties文件的值

    `Properties`类还提供了`store()`方法将属性保存到文件: ```java OutputStream output = new FileOutputStream("config.properties"); props.setProperty("database.name", "new_name"); props.store(output, ...

    读取properties返回map并写入文件

    读取.properties文件的主要工具有Java的Properties类。以下是一个简单的示例,展示如何使用Properties类加载文件并将其内容转换为Map: ```java import java.io.*; import java.util.*; public class ...

    利用Java的Properties 类读取配置文件信息

    通过以上步骤,你可以使用Java的`Properties`类高效地读取、修改和保存配置文件,为你的应用程序提供灵活的配置管理。在实际项目中,你可能会将其封装到一个单独的类,如示例代码中的`PropertiesReader`,以提供更...

    读取.properties文件

    在Java编程中,读取`.properties`文件是一个常见的任务,这些文件通常用于存储配置信息,如数据库连接字符串、系统参数等。`.properties`文件是一种基于键值对的文本格式,易于理解和编辑。在这个场景中,我们将探讨...

    java读取.properties配置信息

    Java提供了内置的`Properties`类来方便地读取和写入这些配置文件,使得在程序中动态访问这些设置变得简单。 首先,我们需要创建`.properties`文件。例如,我们可以创建一个名为`config.properties`的文件,内容如下...

Global site tag (gtag.js) - Google Analytics