如何用java读取zip文件名和zip内文件的文件名,在线等

如何用java读取zip文件名和zip内文件的文件名,在线等,第1张

下面这个DEMO支持ZIP里的txt,但不支持ZIP里的子目录里的txt

你可以自己加一个遍历去取子目录里所需的内容即可

请用orgapachetoolszip下的包,不要用javautilzip下的包,因为中文支持不好

import javaioIOException;

import javaioInputStream;

import javautilEnumeration;

import orgapachetoolszipZipEntry;

import orgapachetoolszipZipFile;

public class TestZip {

public static void printZipTxt(String zipPath) throws IOException{

ZipFile zipFile=new ZipFile(zipPath);

for (Enumeration< extends ZipEntry> e = zipFilegetEntries(); ehasMoreElements();){

ZipEntry entry=enextElement();

Systemoutprintln("文件:"+entrygetName()+", 内容如下:");

if(entrygetName()toLowerCase()endsWith("txt")){

InputStream is=null;

is= zipFilegetInputStream(entry);

byte[] b=new byte[1024];

int leng=-1;

String txtStr="";

while (( leng=isread(b)) !=-1){

txtStr+=new String(b, 0, leng);

}

Systemoutprintln(txtStr);

if(is!=null){

isclose();

}

}

}

}

public static void main(String[] args) {

try {

printZipTxt("c:\\testzip");

} catch (IOException e) {

// TODO Auto-generated c

同意楼上的分析,另外我想提个建议,代码为了便于阅读可以试着分步骤写。

就先定义filename和filepath,然后你在后续的 *** 作中想要出现在设定的某一区域中

就可以直接使用filename,将要上传的文件名是 itsgetIPTimeStampRand()+""+itemgetName()split("\\")[1]

使用 javaioFile对象

File[]

listFiles(FileFilter filter)

Returns an array of abstract pathnames denoting the files and

directories in the directory denoted by this abstract pathname that

satisfy the specified filter

给你个示例,应该看得懂吧

File f =new File("Testtxt");

String fileName=fgetName();

String prefix=fileNamesubstring(fileNamelastIndexOf("")+1);

Systemoutprintln(prefix);

}

File file=new File("D:\\");

String test[];

test=filelist();

for(int i=0;i<testlength;i++)

{

Systemoutprintln(test[i]);

}

这道题主要就是利用了String类的split()方法,进行多次调用,已经帮你实现了,代码如下:

public

class

Test{

public

static

void

main(String[]

args){

String

str

=

"c:/win/good/aaatxt;d:/win/good/bbbtxt;c:/win/cccctxt;";

//得到路径数组

String[]

fileRoot

=

strsplit(";");

String[]

fileName

=

null;

for(int

i

=

0;i

<

fileRootlength;i++){

if(fileRoot[i]

!=

null){

fileName

=

fileRoot[i]split("/");

//得到最终需要的文件名

Systemoutprintln

(fileName[fileNamelength-1]);

}

}

}

}

基本上面几位都说啦。。。

只说一点就是注意null和空的处理

import javaioFile;

import javautilHashSet;

import javautilSet;

public class ReadFileSample {

private static final String PATH = "C:\\TEST";

private static final char SEPARATOR = '_';

public static void main(String[] args) {

Set<String> fileSet = new HashSet<String>();

File[] files = new File(PATH)listFiles();

for (File file : files) {

// 由于Set的元素是不重复的,不用做重复判断,直接放入

fileSetadd(getPrefixFileName(filegetName()));

}

// 由于Set允许null,所以要去除

fileSetremove(null);

// 打印出Set的内容(需要的数据)

Systemoutprintln(fileSet);

}

private static String getPrefixFileName(String fileName) {

if (fileName == null || fileNamelength() == 0) {

return null;

}

int index = fileNameindexOf(SEPARATOR);

if (index < 0) {

// 不含SEPARATOR的文件名

return null;

}

// 从文件名开头到SEPARATOR的位置,截取

return fileNamesubstring(0, index);

}

}

以上就是关于如何用java读取zip文件名和zip内文件的文件名,在线等全部的内容,包括:如何用java读取zip文件名和zip内文件的文件名,在线等、JAVA如何获取上传后的文件名、java怎么获取当前文件夹下有特定文件名的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9527507.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存