`
tmj_159
  • 浏览: 707498 次
  • 性别: Icon_minigender_1
  • 来自: 永州
社区版块
存档分类
最新评论

path 这个东西

阅读更多
    刚毕业,感觉什么都是新的,可能我写的东西已经是老生常谈的东西了,如有不妥请大家指正.
    前些天在公司学习richfaces,自己写小 demo 读文件的时候遇到了path 问题, 几经周折解决后,为了以后少犯这种错误,总结如下:
    Java 中文件的读取大概有以下几种方式:
    一, File f=new File(path);
    二,InputStream myFileStream=this.getClass().getResourceAsStream();
    三,InputStream myFileStream=this.getClass().getClassLoader()
.getResourceAsStream();

    这里很容易混淆的是第二种和第三种方式,以例子为证:
    为了表示的清楚,列举以下信息:
    项目名称:   test
    项目目录:   D:\workspace\test
    测试类所在目录 D:\workspace\test\bin\com\tang\test\TestPath.java
  
package com.tang.test;

import java.io.File;

public class TestPath {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new TestPath().showPath();
	}

	public void showPath() {
		System.out.println("---------test group 1---------");
		System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
		System.out.println(TestPath.class.getClassLoader().getResource(""));
		System.out.println(ClassLoader.getSystemResource(""));
		System.out.println(this.getClass().getClassLoader().getResource(""));
		System.out.println(this.getClass().getResource("/"));
		System.out.println("---------test group 2---------");
		System.out.println(this.getClass().getResource(""));
		System.out.println("---------test group 3---------");
		System.out.println(new File("").getAbsolutePath());
		System.out.println(System.getProperty("user.dir"));
	}

}


   

输出:
---------test group 1---------
file:/D:/workspace/test/bin/
file:/D:/workspace/test/bin/
file:/D:/workspace/test/bin/
file:/D:/workspace/test/bin/
file:/D:/workspace/test/bin/
---------test group 2---------
file:/D:/workspace/test/bin/com/tang/test/
---------test group 3---------
D:\workspace\test
D:\workspace\test

 
  总结:
  注意到了吗,考虑第二种和第三种情况有getClassLoader()方法的返回的是 bin 目录下,否则返回的是类文件生成的目录下,即(bin/com/tang/tree/).

分享到:
评论

相关推荐

    用Uipath设计一个猜心思小游戏

    用Uipath设计一个猜心思小游戏

    用path和surfaceview绘制一些有意思的玩意

    在描述中提到“还有写东西没有优化”,这可能指的是图形的绘制效率或者动画效果。优化`Path`和`SurfaceView`的绘图性能可以从以下几个方面考虑: 1. **减少重绘次数**:尽量减少不必要的`invalidate()`调用,避免...

    win7旗舰版原始path

    在描述中提到的"减压后复制path.txt里面的东西粘贴到系统中的即可",这暗示了压缩包内的`path.txt`文件包含了Windows 7旗舰版的默认PATH配置。用户可能需要这个原始的PATH配置,因为误操作或者恶意软件可能导致PATH...

    Java的path配置路径

    在这个场景中,我们主要关注的是"Path"环境变量的配置。 首先,我们需要理解"Path"环境变量的作用。Path变量是一个包含可执行文件路径的列表,当我们在命令行中输入一个命令时,系统会搜索Path中列出的所有目录,...

    世界地图路径Path,用WPF制作的Page,可以用浏览器直接打开

    世界地图路径Path,用WPF制作的Page,可以用浏览器直接打开,很漂亮的东西,初学者或是老手都可以下来研究一下

    react-pathform

    我们可以从派生出很多东西…… 快速开始 npm install --save react-pathform import React from 'react' ; import { PathFormProvider , PathForm , PathFormField } from 'react-pathform' ; import { Button , ...

    opencl-path-tracer:在OpenCL中实现的GPU加速的Path Tracer

    与传统的光栅化器图形系统相比,跟踪器图形支持范围更广的图元,而没有太多的计算开销(任何具有封闭形式方程式的东西)。 原语: 当前基元: 领域 平面(无限) 三角形 可以在当前框架中实现的基元:(所有形状...

    harmonyos2-pathfinder-mods:探路者的模组:Kingmaker

    这个模组从 PnP Pathfinder 添加了 Oracle 类、新法术、魔法主题专长、角色特征和其他有趣的东西。 注意:这是最后针对 PF:K 1.3.0 进行的测试。 当我尝试测试所有内容时,某些功能可能还不能正常工作。 如果您有一...

    circlepath:小球轴向圆形轨迹运动,感兴趣的朋友,可以下载原始码看看

    起因:我是做蓝牙开发的,就是蓝牙智能锁,项目需要一个'添加钥匙'效果这个东西很简单,很基础的知识。如果你是大神,小弟献丑了,如果你想学习Path建议看看,代码不多,但是简单容易理解。逻辑思路: 1:画3个工件...

    PathfinderUtilities:用于面向RPG游戏的Pathfinder 1E和Python3程序HTMLJS可搜索数据库

    创建一个高度可过滤且可自定义的生物列表激发了我沿着这条线创造更多东西的灵感。 这个更大的新项目现在包括一个可过滤的专长列表,而我目前正在研究一个拼写列表。 我还添加了两个Python3程序,它们不仅可以用于...

    Full-Stack-Development-Learning-Path:这个 repo 包含我在学习全栈 web 开发时练习的所有东西

    这个 repo 包含了我在成为全栈开发人员的学习过程中实践的所有东西。 学习模块分为54周,分为前端和后端 这个 repo 将包含 2 个主要文件夹 Frontend 和 Backend,每个文件夹将包含我执行的任务的每周明智和主题明智...

    python环境切换,小程序

    第二:命令行模式输入的字串长度有限制,这个是我调试好poython代码之后发现的,这个坑很大。 第三:windows cmd 中if下的两个字串的比较有时候不好使,跳过验证。 第四:命令行存在编码的修改,要不然会输出乱码,这...

    NDP461-KB3102436-x86-x64-AllOS-ENU.zip

    描述中提到的"uipath现版本需要安装的.net版本",这表明UiPath,一个知名的RPA(Robotic Process Automation)软件,目前依赖于.NET Framework 4.6.1运行。RPA工具如UiPath通常需要特定版本的.NET Framework作为其...

    DOS命令大全,很有用的东西

    **用法**:`PATH [path1]directory[path2]directory...` **说明**: - 设置多个路径时,路径间用分号分隔。 - 示例:设置当前目录及其下FOX目录为执行文件搜索路径。 - `PATH C:\;C:\FOX` ### 6. TREE **功能**:...

    pluto-path:从一个或多个路径中的文件创建Pluto依赖项注入模块

    冥王星路径使用依赖项注入程序包从一个或多个路径中的文件创建并引导应用程序。 分支地位掌握 全部 为什么...用法简化选项'use strict'const path = require ( 'path' )const plutoPath = require ( 'pluto-path' )plu

    SVG实现镂空动画图标 可填充颜色

    这是一款基于SVG的镂空动画图标,图标的绘制是通过SVG的path标签实现的,本示例展示3个不同的东西,篮球、twitter logo和一个猪头。鼠标滑过图标时,图标镂空的部分将会以渐变的方式填充一种颜色,效果非常不错。

    【无人车路径规划】frenet-path-planning.zip

    无人车路径搜索,是一个比较复杂的问题,但是要入门无人车路径规划或者路径搜索,需要先掌握一些基础的东西。不同于机器人中经常看到的路径规划(比如ROS中基于costmap)算法,无人车的路径搜索算法更加先进,它将考虑...

    SVG实现镂空动画图标.zip

    SVG实现镂空动画图标是一款基于SVG的镂空动画图标,图标的绘制是通过SVG的path标签实现的,本示例展示3个不同的东西,篮球、twitter logo和一个猪头。鼠标滑过图标时,图标镂空的部分将会以渐变的方式填充一种颜色,...

    Pathfinder-Discord-Bot

    探路者Discord Bot 帮助Discord 2e玩家使用Discord的机器人。... 另外,我想创造一些东西来帮助我的总经理和其他球员。 查找探路者条款 漫游器进入您的频道后,您可以使用以下内容查找字词并将其直接发送到您的频

    XLSReadWriteII_v5.20.25〖D7,XE-XE6〗

    直接安装对应版本的.Bpl文件,然后加入library path即可,版本已XX请低调使用,仅供学习交流,商业用途请购买正版。 严重声明:不喜勿下,嫌东嫌...使用之后发现这个东西真不错,简单好用。不管是读还是写均轻松搞定。

Global site tag (gtag.js) - Google Analytics