java怎么读取同一个工程里面的src目录下的文件?

java怎么读取同一个工程里面的src目录下的文件?,第1张

在java中获得文件路径在我们做上传文件 *** 作时是不可避免的。
web 上运行
1:thisgetClass()getClassLoader()getResource("/")getPath();
thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 ClassPath的绝对URI路径。
如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/
SystemgetProperty("userdir");
thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 项目的绝对路径。
如:/D:/jboss-422GA/server/default/deploy/hpwar
2:thisgetClass()getResource("/")getPath();
thisgetClass()getResource("")getPath(); 得到的是当前类 文件的URI目录
如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/com/jebel/helper/
thisgetClass()getResource("")getPath(); X 不 能运行
3:ThreadcurrentThread()getContextClassLoader()getResource("/")getPath()
ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 ClassPath的绝对URI路径。
如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/
ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 项目的绝对路径。
如:/D:/jboss-422GA/server/default/deploy/hpwar
在本地运行中
1:thisgetClass()getClassLoader()getResource("")getPath();
thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 ClassPath的绝对URI路径。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
thisgetClass()getClassLoader()getResource("")getPath(); X 不 能运行
2:thisgetClass()getResource("")getPath();
thisgetClass()getResource("")getPath(); 得到的是当前类 文件的URI目录。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/
/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的绝对URI路径。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

html中img的src相对路径的写法:

同一个目录的文件引用---直接写引用文件名即可。如果源文件和引用文件在同一个目录里,直接写引用文件名即可,这时引用文件的方式就是使用相对路径。

例如:

我们现在建一个源文件infohtml,在infohtml里要引用indexhtml文件作为超链接。

假设infohtml路径是:c:/Inetpub/>

<a href = "indexhtml">这是超连接</a>
Notice:

如何表示上级目录
/表示源文件所在目录的上一级目录,//表示源文件所在目录的上上级目录,以此类推。

假设infohtml路径是:c:/Inetpub/>

<a href = "/indexhtml">这是超连接</a>

假设infohtml路径是:c:/Inetpub/>

<a href = "//indexhtml">indexhtml</a>
假设infohtml路径是:c:/Inetpub/>

<a href = "/wowstory/indexhtml">indexhtml</a>

Notice:
如何表示下级目录
引用下级目录的文件,直接写下级目录文件的路径即可。

假设infohtml路径是:c:/Inetpub/>

<a href = "html/indexhtml">这是超连接</a>

假设infohtml路径是:c:/Inetpub/>

<a href = "html/tutorials/indexhtml">这是超连接</a>

HTML绝对路径:

在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径,例如只要看到这个路径:c:/website /img/photojpg我们就知道photojpg文件是在c盘的website目录下的img子目录中。类似于这样完整的描述文件位置的路径就是绝对路径。我们不需要知道其他任何信息就可以根据绝对路径判断出文件的位置。而在网站中类似以>

HTML绝对路径(absolute path)在网页制作中指带域名的文件的完整路径。

假设你注册了域名>

假设你在;>

假设你在,这个文件的绝对路径就是>

“/”:表示文件所在的父级目录。

"/Js/Lockjs":这个路径表示当前文件的父级目录下的Js文件夹下的Lockjs文件。

//Skin/Root/Image/lefttopjpg:这个路径表示当前文件的父级目录的父级目录下的Skin文件夹下分Root文件夹下的Image文件夹下的lefttopjpg。

这些都是相对路径的表示方法。

相对路径是指目标相对于当前文件的路径,网页结构设计中多采用这种方法来表示目标的路径。

相对路径的其他表示方法:

/ :代表文件所在的目录(可以省略不写)。

/ :代表文件所在的根目录。

扩展资料:

路径指文件存放的位置,在网页中利用路径可以引用文件,插入图像、视频等。表示路径的方法有两种:相对路径,绝对路径。

绝对路径:

以Web站点根目录为参考基础的目录路径。指当所有网页引用同一个文件时,所使用的路径都是一样的。

绝对路径与相对路径的不同处,只在于描述目录路径时,所采用的参考点不同。

由于对网站上所有文件而言,根目录这个参考点对所有文件都是一样的,因此,运用以根目录为参考点的路径描述方式才会被称之为绝对路径。

分类: 电脑/网络 >> *** 作系统/系统故障
问题描述:

比如原来的目录为E:\xiaoshuo\xx\A\1txt

E:\xiaoshuo\xx\A\2txt



目录"xx"为不固定名称,其他的文件夹为固定名称
如何写批处理让E:\xiaoshuo\目录下的所有txt的文本文件,都复制或移动到上一层目录里,变为 E:\xiaoshuo\xx\1txt

E:\xiaoshuo\xx\2txt



请教这个批处理该怎么写谢谢

解析:

批处理水平也很菜,想了很久,再问了问别人,最终还是要写四个批处理文件才行,你试试吧,应该可以,以测试过

运行okbat即可

1以下内容保存为okbat

call 1bat

call 3bat

2以下内容保存为3bat

del ywdtxt

del tiqudwdtxt

del ljtxt

exit

3以下内容保存为2bat

@echo off

for /f "tokens=1-5 delims=\" %%i in (ywdtxt) do call :pick-up "%%i" "%%j" "%%k" "%%l" "%%m" "%%n"

goto :eof

:pick-up

if %5=="" goto :eof

if not %6=="" goto :eof

set "var=%1\%2\%3\%4\%5"

echo %var:"=% >>tiqudwdtxt

goto :eof

4以下内容保存为1bat

@echo off

for /r e:\xiaoshuo %%a in (txt) do echo %%a >>ywdtxt

call 2bat

for /f "tokens=1,2,3, delims=\" %%b in (tiqudwdtxt) do echo %%b\%%c\%%d >>ljtxt

setlocal enabledelayedexpansion

set skip=0

for /f %%i in (tiqudwdtxt) do (

set src=%%i

if !skip!==0 (set /p dst=<ljtxt) else (call :dst !skip!)

set /a skip+=1

if defined dst xcopy/y "!src!" "!dst!"

set src=

set dst=

)

pause

GOTO :EOF

:dst

for /f "skip=%1" %%i in (ljtxt) do (set dst=%%i&GOTO :EOF)

运行okbat以后,就可以把你的txt文档复制到xx目录下,要删除xx里的a目录,还得另编一条批处理,这应该不难了吧

1 那么包名和实际物理路径有什么关系
答: 包名必须出现在实际路径中的一部分, 只是一段, 不可能是绝对路径 而这个段的起点, 就是包含了classpath目录的一个
可以看到如下代码, 是eclipse 自动生成的 classpath文件, 其中classpath就包含了testsrc, src, 而这两个目录下都有个子目录 coolUnit, 这个就是包名的开始
<xml version="10" encoding="UTF-8">
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="testsrc"/>
<classpathentry kind="con" path="orgeclipsejdtlaunchingJRE_CONTAINER/orgeclipsejdtinternaldebuguilauncherStandardVMType/JavaSE-16"/>
<classpathentry kind="con" path="orgeclipsejdtjunitJUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="bin"/>
</classpath>
2 相同包名 如果可以存储在不同物理路径下, java 编译器如何找到对应的类
答: 当然可以存储在不同的物理路径下, 只不过这两个路径中, 有一部分必须相同, 即包名包括的部分 置于java编译器如何找到, 简单, 就是把从包名的起点的上层目录添加到classpath中了, 这样就可以找到对应了类了 类似上边的testsrc, src, 这两个目录都被添加进了classpath(当然这个工作是eclipse替我们完成的, 如果是我们自己编译, 不借助eclipse, 就需要指定 javac –classpath 把这两个目录加进去)
3 这里肯定跟classpath 有关, 不可能你随便写个java类, java 编译器都能找到, 那么如何引入自己写的类呢
如何引用自己的类的, 就是将自己的类的包名的起点的上层目录作为 javac –classpath参数传入, 这样的目的是让java编译器找到你的类所在的位置
综上: 包名是抽象出来的类的空间, 虽然在物理上存储需要文件夹配合层次, 但是关键, 这个层次不是绝对路径, 只是路径中的一部分, 所以, 我们完全可以将代码放在不同路径下, 只要路径中对应包名的部分相同就可以了

为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包
Java中的包一般均包含相关的类,例如,所有关于交通工具的类都可以放到名为Transportation的包中
包语句格式:
package pkg1[.pkg2[.pkg3…]];
程序中如果有package语句,该语句一定是源文件中的第一条可执行语句,它的前面只能有注释或空行。另外,一个文件中最多只能有一条package语句
包的名字有层次关系,各层之间以点分隔。包层次必须与Java开发系统的文件系统结构相同(并非绝对路径)。通常包名中全部用小写字母,这与类名以大写字母开头,且各字的首字母亦大写的命名约定有所不同。
当使用包说明时,程序中无需再引用(import)同一个包或该包的任何元素。import语句只用来将其他包中的类引入当前名字空间中。而当前包总是处于当前名字空间中
如果文件声明如下:
package javaawtimage
则此文件必须存放在Windows的java\awt\image目录下或unix的java/awt/image目录下。
问题出现了: 因为路径不可能是绝对的, 即从根目录开始一直向下, 所以目录的开始位置, 只需要是classpath包含的位置就可以了
这才是问题解决的关键 从这点说, 包名是抽象的


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13373593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存