jar文件读取和遍历
来源:互联网 发布:linux执行命令后循环 编辑:程序博客网 时间:2024/05/16 07:09
在spring Resource中,根据ClassLoader可以加载资源,前提是必须有个指定的前缀,譬如:
classpath*:META-INF/*.indx
由于spring使用AntPathMatcher支持Ant格式的路径,但是必须有个前缀,否则只能找到当前java -classpath下面的目录,不能提取出java -classpath下面的jar包的文件。
因为ClassLoader.getResources("")
只返回目录,而不含jar包;
1. jar下面特定文件读取
URL url = new URL("jar:file:/System/Library/Java/Extensions/j3daudio.jar!/META-INF/INDEX.LIST"); InputStream inputStream = url.openConnection().getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String line = null; while( (line = bufferedReader.readLine()) != null) { System.out.println(line); }
结果是:
JarIndex-Version: 1.0j3daudio.jarcomcom/suncom/sun/j3dcom/sun/j3d/audioenginescom/sun/j3d/audioengines/headspacecom/sun/j3d/audioengines/javasoundcom/sun/j3d/utilscom/sun/j3d/utils/applet
2. jar所有目录名称遍历
URL url = new URL("jar:file:/System/Library/Java/Extensions/j3daudio.jar!/META-INF/INDEX.LIST");JarURLConnection jarURLConnection = (JarURLConnection)url.openConnection(); JarFile jarFile = jarURLConnection.getJarFile(); System.out.println("Jar Name: " + jarFile.getName()); System.out.println("Jar Entry: " + jarURLConnection.getJarEntry().getName()); for(Enumeration<JarEntry> enumeration = jarFile.entries(); enumeration.hasMoreElements(); ) { JarEntry jarEntry = enumeration.nextElement(); System.out.println("jar entry: " + jarEntry.getName()); }
结果:
Jar Name: /System/Library/Java/Extensions/j3daudio.jarJar Entry: META-INF/INDEX.LISTjar entry: META-INF/jar entry: META-INF/MANIFEST.MFjar entry: com/jar entry: com/sun/jar entry: com/sun/j3d/jar entry: com/sun/j3d/audioengines/jar entry: com/sun/j3d/audioengines/headspace/jar entry: com/sun/j3d/audioengines/javasound/jar entry: com/sun/j3d/utils/jar entry: com/sun/j3d/utils/applet/jar entry: com/sun/j3d/COPYRIGHT.TXTjar entry: com/sun/j3d/ExceptionStrings.propertiesjar entry: com/sun/j3d/audioengines/AudioEngine.classjar entry: com/sun/j3d/audioengines/AudioEngine3D.classjar entry: com/sun/j3d/audioengines/AudioEngine3DL2.classjar entry: com/sun/j3d/audioengines/AudioEngineThread.classjar entry: com/sun/j3d/audioengines/AuralParameters.classjar entry: com/sun/j3d/audioengines/Sample.classjar entry: com/sun/j3d/audioengines/headspace/ActionExceptionWrapper.classjar entry: com/sun/j3d/audioengines/headspace/ActionWrapper.classjar entry: com/sun/j3d/audioengines/headspace/AudioAiffInputStream.classjar entry: com/sun/j3d/audioengines/headspace/AudioAuInputStream.classjar entry: com/sun/j3d/audioengines/headspace/AudioClipData.classjar entry: com/sun/j3d/audioengines/headspace/AudioContainerInputStream.classjar entry: com/sun/j3d/audioengines/headspace/AudioData.classjar entry: com/sun/j3d/audioengines/headspace/AudioDataStream.classjar entry: com/sun/j3d/audioengines/headspace/AudioDevice.classjar entry: com/sun/j3d/audioengines/headspace/AudioEnvironment.classjar entry: com/sun/j3d/audioengines/headspace/AudioFormat.classjar entry: com/sun/j3d/audioengines/headspace/AudioMidiInputStream.classjar entry: com/sun/j3d/audioengines/headspace/AudioPlayer$1.classjar entry: com/sun/j3d/audioengines/headspace/AudioPlayer$2.classjar entry: com/sun/j3d/audioengines/headspace/AudioPlayer.classjar entry: com/sun/j3d/audioengines/headspace/AudioRmfInputStream.classjar entry: com/sun/j3d/audioengines/headspace/AudioSecurity.classjar entry: com/sun/j3d/audioengines/headspace/AudioSecurityAction.classjar entry: com/sun/j3d/audioengines/headspace/AudioSecurityActionException.classjar entry: com/sun/j3d/audioengines/headspace/AudioSecurityExceptionAction.classjar entry: com/sun/j3d/audioengines/headspace/AudioStream.classjar entry: com/sun/j3d/audioengines/headspace/AudioStreamSequence.classjar entry: com/sun/j3d/audioengines/headspace/AudioTranslatorStream.classjar entry: com/sun/j3d/audioengines/headspace/AudioWavInputStream.classjar entry: com/sun/j3d/audioengines/headspace/BadAudioHeaderException.classjar entry: com/sun/j3d/audioengines/headspace/ContinuousAudioDataStream.classjar entry: com/sun/j3d/audioengines/headspace/Format.classjar entry: com/sun/j3d/audioengines/headspace/HAEDirectionalSample.classjar entry: com/sun/j3d/audioengines/headspace/HAEPositionalSample.classjar entry: com/sun/j3d/audioengines/headspace/HAESample.classjar entry: com/sun/j3d/audioengines/headspace/HAEShutdownHook$1.classjar entry: com/sun/j3d/audioengines/headspace/HAEShutdownHook$2.classjar entry: com/sun/j3d/audioengines/headspace/HAEShutdownHook.classjar entry: com/sun/j3d/audioengines/headspace/HaeAudioStream.classjar entry: com/sun/j3d/audioengines/headspace/HaeAudioStreamClip.classjar entry: com/sun/j3d/audioengines/headspace/HaeDevice.classjar entry: com/sun/j3d/audioengines/headspace/HaeException.classjar entry: com/sun/j3d/audioengines/headspace/HaeMidiNoise.classjar entry: com/sun/j3d/audioengines/headspace/HaeMidiSong.classjar entry: com/sun/j3d/audioengines/headspace/HaeMixer$1.classjar entry: com/sun/j3d/audioengines/headspace/HaeMixer$2.classjar entry: com/sun/j3d/audioengines/headspace/HaeMixer$3.classjar entry: com/sun/j3d/audioengines/headspace/HaeMixer$4.classjar entry: com/sun/j3d/audioengines/headspace/HaeMixer$5.classjar entry: com/sun/j3d/audioengines/headspace/HaeMixer$6.classjar entry: com/sun/j3d/audioengines/headspace/HaeMixer.classjar entry: com/sun/j3d/audioengines/headspace/HaeNoise.classjar entry: com/sun/j3d/audioengines/headspace/HaePlayable.classjar entry: com/sun/j3d/audioengines/headspace/HaeRmfSong.classjar entry: com/sun/j3d/audioengines/headspace/HaeThread.classjar entry: com/sun/j3d/audioengines/headspace/HaeWaveNoise.classjar entry: com/sun/j3d/audioengines/headspace/HaeWaveStream.classjar entry: com/sun/j3d/audioengines/headspace/HaeWaveStreamBuffer.classjar entry: com/sun/j3d/audioengines/headspace/HeadspaceMixer.classjar entry: com/sun/j3d/audioengines/headspace/HeadspaceParams.classjar entry: com/sun/j3d/audioengines/headspace/HeadspaceThread.classjar entry: com/sun/j3d/audioengines/headspace/InvalidAudioFormatException.classjar entry: com/sun/j3d/audioengines/headspace/J3DHaeClip.classjar entry: com/sun/j3d/audioengines/headspace/J3DHaeMidi.classjar entry: com/sun/j3d/audioengines/headspace/J3DHaeStream.classjar entry: com/sun/j3d/audioengines/headspace/MediaInputStream.classjar entry: com/sun/j3d/audioengines/headspace/NativeAudioStream.classjar entry: com/sun/j3d/audioengines/headspace/SunAudioClip.classjar entry: com/sun/j3d/audioengines/javasound/JSAuralParameters.classjar entry: com/sun/j3d/audioengines/javasound/JSChannel.classjar entry: com/sun/j3d/audioengines/javasound/JSClip.classjar entry: com/sun/j3d/audioengines/javasound/JSDirectionalSample.classjar entry: com/sun/j3d/audioengines/javasound/JSMidi.classjar entry: com/sun/j3d/audioengines/javasound/JSPositionalSample.classjar entry: com/sun/j3d/audioengines/javasound/JSSample.classjar entry: com/sun/j3d/audioengines/javasound/JSStream.classjar entry: com/sun/j3d/audioengines/javasound/JSThread.classjar entry: com/sun/j3d/audioengines/javasound/JavaSoundMixer.classjar entry: com/sun/j3d/soundbank.gmjar entry: com/sun/j3d/utils/applet/LICENSE.TXTjar entry: META-INF/INDEX.LIST
说明:jar:file:/System/Library/Java/Extensions/j3daudio.jar!/
其中!/是特定分隔符,分隔jar文件和其中的文件目录。
0 0
- jar文件读取和遍历
- 关于运行jar文件和jar文件路径和dom4j读取jar文件
- java如何读取和遍历properties文件
- jar中读取文件
- jar读取内部文件
- jar包文件读取
- java读取和写入jar包外的properties文件
- Jar包读取内部和外部的文件
- Jar包读取内部和外部的文件
- Jar包读取内部和外部的文件
- java如何读取和遍历properties文件
- SSIS遍历xls文件读取和写入数据
- 遍历和读取LUA文件中表的元素Demo
- Qt QSettings(遍历)读取注册表和ini文件
- 读取jar包中的文件
- java.util.jar 读取文件
- Java读取jar中的文件
- 读取jar包外部文件
- Android 环形进度条Demo
- img标签的onerror事件
- innerText兼容处理
- 升级SDK后出现:This Android SDK requires Android ... update ADT to the latest version
- tongEASY
- jar文件读取和遍历
- Makefile的实例讲解
- UVa 10391(Compound Words)
- maven 无法导入jar包
- hdu 5151 Sit sit sit(区间DP+组合数学)
- Android 绘图(二) Canvas
- 数据挖掘十大经典算法
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- linux第八天