`
cectsky
  • 浏览: 46561 次
  • 性别: 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文件,比如`...

    java操作properties属性文件jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar,有例子

    `jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar` 是一个专门用于编辑和管理Properties文件的工具,这使得开发者可以更加便捷地处理这类文件。下面将详细介绍如何在Java中操作Properties文件,并结合`propedit`工具...

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

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

    Java读取.properties文件

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

    读取properties文件返回map

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

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

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

    Java 读取本地.xls .xlsx文件

    在Java编程中,读取本地的.xls和.xlsx文件通常涉及到数据处理、数据分析或者报表生成等场景。这些文件格式是Microsoft Excel用于存储表格数据的标准格式,.xls是早期版本的Excel文件,而.xlsx则是较新的XML格式,...

    java完美读取properties文件

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

    js读取properties文件

    在JavaScript(JS)环境中,读取.properties文件通常用于处理配置数据或者本地化文本。这些文件在Java开发中广泛使用,但JavaScript同样可以借助一些库或技术来读取它们。下面我们将详细探讨如何在JavaScript中实现...

    java读取本地.db文件实例

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

    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读取properties配置文件

    本文将详细介绍如何在Java中读取`properties`配置文件。 首先,我们需要了解`properties`文件的格式。一个标准的`.properties`文件通常包含多个行,每行由一个键和一个值组成,它们之间用等号(`=`)或冒号(`:`)...

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

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

    java读取mpp文件

    `mpxj`是一个开源的Java库,专门用于读取和写入Microsoft Project文件,包括MPP格式。这个库提供了丰富的API,使得开发者可以在Java应用中方便地操作这些项目管理文件。 首先,让我们详细了解一下如何在Java中使用`...

    android中读取properties文件

    在Android开发中,读取`properties`文件是一个常见的任务,主要用于存储配置信息或者与Java中的`.properties`文件进行交互。`.properties`文件是一种简单的键值对格式,常用于跨平台的配置存储。以下是对这个主题的...

    java对properties文件的操作.pdf

    在Java编程中,Properties文件是用于存储配置信息的文本文件,通常包含键值对,其中键和值由等号分隔。这些文件被广泛应用于设置应用程序的参数、配置环境变量等场景。本篇将深入探讨Java如何操作Properties文件,...

    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 ...

Global site tag (gtag.js) - Google Analytics