
下面这个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怎么获取当前文件夹下有特定文件名的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)