`
米奈希尔
  • 浏览: 268690 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

文件加载路径问题

 
阅读更多

  项目中常常需要加载资源文件或者进行文件读写操作,许多人都会遇到文件找不到的问题,很多情况下这是因为路径不对产生的。以下是我总结的解决办法,不足之处,请指正。

  工程目录结构如下:

FilePathDemo

 --/src

   --/com.filepathdemo.test

      FilePathDemo.java

      test.txt

   --/test.txt

 

test.txt(com.filepathdemo.test中) 

包目录test.txt

test.txt(src中)

根目录test.txt

 

 

package com.filepathdemo.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class FilePathDemo {

	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		BufferedReader br = null;
		String line = null;

		// 加载当前类所在包中文件
		InputStream istream1 = FilePathDemo.class
				.getResourceAsStream("test.txt");
		// output
		br = new BufferedReader(new InputStreamReader(istream1, "UTF-8"));
		while ((line = br.readLine()) != null) {
			System.out.println(line);
		}
		if (br != null) {
			br.close();
		}

		// 加载工程根目录(src)下文件
		InputStream istream2 = getResourceAsStream("test.txt");
		// output
		br = new BufferedReader(new InputStreamReader(istream2, "UTF-8"));
		line = null;
		while ((line = br.readLine()) != null) {
			System.out.println(line);
		}

		if (br != null) {
			br.close();
		}
	}

	/***
	 * 从程序执行路径根目录加载资源
	 * 
	 * @param resource
	 *            文件名
	 * @return
	 */
	protected static InputStream getResourceAsStream(String resource) {
		String stripped = resource.startsWith("/") ? resource.substring(1)
				: resource;
		InputStream stream = null;
		ClassLoader classLoader = Thread.currentThread()
				.getContextClassLoader();
		if (classLoader != null) {
			stream = classLoader.getResourceAsStream(stripped);
		}

		return stream;
	}
}

 

运行结果:

包目录test.txt
根目录test.txt

分享到:
评论

相关推荐

    ue4动态加载资源路径信息

    下面将详细探讨如何在UE4中实现动态加载资源以及涉及的相关路径信息。 1. **模块系统**:UE4中的资源是通过模块进行组织的,每个模块可以包含多个类、纹理、音频文件等。动态加载资源首先涉及到对模块的管理。当...

    Android根据文件路径加载指定文件

    4. **多媒体文件加载**: - 对于图片文件,Android提供了多种方式加载,例如: - 使用`BitmapFactory`:通过`BitmapFactory.decodeFile()`方法,将文件路径转换为`Bitmap`对象,再显示到ImageView。 - 使用 Glide...

    C# 获取文件路径

    在实际开发中,获取文件路径是非常重要的,例如在读取配置文件、加载资源文件、记录日志文件等场景中都需要获取文件路径。 控制台应用程序获取文件路径 在控制台应用程序中,可以使用以下方法获取文件路径: 1. `...

    Windows DLL文件的搜索路径 动态链接库dll文件的加载路径顺序

    dll文件的加载路径顺序

    QT treeWidget 加载指定路径所有文件夹和文件

    QT treeWidget 加载指定路径所有文件夹和文件,带checkbox 整合了一些网络文章内容做出来的小程序,抛砖引玉吧

    Unity 在StreamingAssets路径下加载Xml文件

    本文将深入探讨如何在Unity的StreamingAssets路径下加载XML文件,并解决不同平台下加载路径的问题以及如何跳过Unicode Byte Order Mark (BOM)来正确解析XML文件。 首先,我们了解StreamingAssets路径。Unity提供了...

    html5 中视频路径问题解决

    总之,通过本篇文章提供的代码示例和解析,您可以更好地理解如何在HTML5中处理媒体文件的路径问题,无论是绝对路径还是相对路径,都能够灵活应对。希望这些知识点能够帮助您在开发过程中更加得心应手。

    VC++动态加载数据库路径

    在VC++编程中,动态加载数据库路径是一种常见的需求,特别是在软件设计中要求灵活性和保密性的场景下。这种技术允许程序在运行时根据用户输入或配置文件动态决定数据库的连接信息,而不是硬编码在源代码中。下面将...

    javascript文件中获取当前文件路径

    在开发javascript插件的过程中,我们有时候需要获取当前JS文件的路径,用于自动加载一些图片、CSS等外部资源,但是javascript文件中并没有像PHP那样的__FILE__常量来供我们取得当前文件路径

    安卓 腾讯TBS加载本地文件(word.pdf.ppt)

    - **文件路径问题**:确保传递给TBS的文件路径是有效的,避免使用相对路径,尽量使用绝对路径。 - **版本兼容性**:不同版本的TBS可能存在兼容性问题,及时更新TBS SDK至最新版本以获得最佳效果。 - **文件格式不...

    jsp文件中引用外部.css或.js文件的路径问题.pdf

    jsp 文件中引用外部.css 或.js 文件的路径问题 在 Web 开发中,引用外部的.css 或.js 文件是非常常见的操作。然而,在 jsp 文件中引用外部.css 或.js 文件的路径问题却是很多开发者容易忽视的细节。本文将详细讲解...

    html路径问题 html路径问题

    在网页开发中,正确处理文件路径对于确保链接、图片和其他资源能够被正确加载至关重要。本文将围绕“HTML路径问题”这一主题展开深入探讨,旨在帮助开发者理解并解决在实际工作中遇到的各种路径相关的问题。 #### ...

    Qt加载字体文件删除字体文件

    该方法接受一个文件路径和一个字符串数组,用于存储加载失败时的错误信息。例如: ```cpp QString fontFilePath = ":/resources/fonts/myCustomFont.ttf"; int fontId = QFontDatabase::addApplicationFont...

    润乾报表子报表路径问题解决方法

    ### 润乾报表子报表路径问题解决方法 #### 一、问题背景 在使用润乾报表进行报表设计与展示的过程中,经常会遇到子报表路径配置不当导致报表无法正常加载的问题。此类问题通常出现在多模块或者分布式系统环境中,...

    使用URLClassLoader加载本地文件夹c盘下的test.jar文件

    但当我们需要自定义加载路径,如加载本地文件系统中的JAR时,就需要使用到URLClassLoader。 URLClassLoader的工作原理是基于URL的,每个URL代表一个类或资源的定位。对于加载C盘下的test.jar文件,我们需要创建一个...

    C# WinForm 动态加载DLL 通过配置文件

    总结来说,C# WinForm通过配置文件动态加载DLL的关键步骤包括:读取配置文件中的DLL路径,使用`Assembly.LoadFrom`加载DLL,通过反射获取并实例化DLL中的类,最后调用类的方法执行功能。这种方法提高了代码的可维护...

    delphi资源-文件路径

    ### Delphi资源-文件路径 在Delphi编程中,处理文件...通过结合使用这些函数,我们可以非常灵活地处理各种文件路径问题,从而更好地满足不同的编程需求。在实际开发过程中,熟练掌握这些函数的应用技巧是非常重要的。

    改变隐式加载dll路径的方法实例代码

    本文将重点讨论隐式加载,并提供一个使用`SetDllDirectory`函数改变隐式加载DLL路径的实例代码。 **隐式加载(Load-Time Dynamic Linking)** 隐式加载是在编译和链接阶段进行的。当一个应用程序被编译和链接时,...

    读取文件夹路径设为默认.rar_labview_labview default_labview下载路径_labview加载路径

    对于LabVIEW的加载路径,可以通过自定义启动选项来设定。在LabVIEW的“工具”菜单中选择“选项”,然后在“启动”选项卡下,可以设置“启动后打开的VI”为特定路径的VI,这样每次启动LabVIEW时,就会自动加载这个...

    天下网吧IMG文件加载工具1.3

    《天下网吧IMG文件加载工具1.3》是一款专为网吧环境设计的实用工具,主要用于处理和管理网吧系统中的IMG镜像文件。IMG文件是广泛应用于网吧管理系统中的一个特殊格式,它通常包含了完整的操作系统、应用程序、游戏...

Global site tag (gtag.js) - Google Analytics