读取目录下的文件
package io;
import java.io.File;
public class FileTest {
public void getFiles(String path) {
File fileDir = new File(path);
if (!fileDir.exists()) {
return;
}
findFile(fileDir);
}
public void findFile(File fileDir) {
File[] files = fileDir.listFiles();
if (files == null) {
return;
}
for (int i = 0; i < files.length; i++) {
File file = files[i];
if (file.isFile()&&file.getName().endsWith(".txt")) {
System.out.println(file.getName());
} else {
findFile(file);
}
}
}
public static void main(String args[]){
FileTest ft = new FileTest();
ft.getFiles("E:/study");
}
}
解压缩文件
package io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
public class ZipFileTest {
public void extractZip(String inPath, String outPath) {
InputStream is = null;
OutputStream os = null;
try {
ZipFile inFile = new ZipFile(inPath);
Enumeration fileHeaders = inFile.entries();
for (; fileHeaders.hasMoreElements();) {
ZipEntry zip = (ZipEntry) fileHeaders.nextElement();
String filename = zip.getName();
String outFilePath = outPath + System.getProperty("file.separator") + filename;
File file = new File(outFilePath);
if (zip.isDirectory()) {
file.mkdirs();
continue;
}
File parentFile = file.getParentFile();
if (!parentFile.exists()) {
parentFile.mkdirs();
}
is = inFile.getInputStream(zip);
os = new FileOutputStream(outFilePath);
int len = -1;
byte[] buff = new byte[4096];
while ((len = is.read(buff)) != -1) {
os.write(buff, 0, len);
}
}
} catch (IOException ex) {
Logger.getLogger(ZipFileTest.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
if (os != null) {
os.flush();
os.close();
os = null;
}
if (is != null) {
is.close();
is = null;
}
} catch (IOException ex) {
Logger.getLogger(ZipFileTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void compressZip(String inPath, String outPath) {
ZipOutputStream zipOutput = null;
try {
zipOutput = new ZipOutputStream(new FileOutputStream(outPath));
File file = new File(inPath);
if (!file.exists()) {
return;
}
if (file.isDirectory()) {
findFile(file, zipOutput, "");
} else {
zipOutput.putNextEntry(new ZipEntry(file.getName()));
if (file.isFile()) {
InputStream is = new FileInputStream(file);
int len = -1;
byte[] buff = new byte[4069];
while ((len = is.read(buff)) != -1) {
zipOutput.write(buff, 0, len);
}
}
}
} catch (IOException ex) {
Logger.getLogger(ZipFileTest.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
zipOutput.close();
} catch (IOException ex) {
Logger.getLogger(ZipFileTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void findFile(File fileDir, ZipOutputStream zipOutput, String parentPath) {
File[] files = fileDir.listFiles();
if (files == null) {
return;
}
for (int i = 0; i < files.length; i++) {
File file = files[i];
if (file.isFile()) {
InputStream is = null;
try {
zipOutput.putNextEntry(new ZipEntry(parentPath + File.separator + file.getName()));
is = new FileInputStream(file);
int len = -1;
byte[] buff = new byte[4069];
while ((len = is.read(buff)) != -1) {
zipOutput.write(buff, 0, len);
}
} catch (IOException ex) {
Logger.getLogger(ZipFileTest.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
is.close();
} catch (IOException ex) {
Logger.getLogger(ZipFileTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
} else {
try {
if (parentPath.isEmpty()) {
parentPath = fileDir.getName();
} else {
parentPath += File.separator + file.getName();
}
zipOutput.putNextEntry(new ZipEntry(parentPath + "/"));
findFile(file, zipOutput, parentPath);
if( parentPath.lastIndexOf(File.separator)>0)
parentPath = parentPath.substring(0, parentPath.lastIndexOf(File.separator));
} catch (IOException ex) {
Logger.getLogger(ZipFileTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
public static void main(String args[]) {
ZipFileTest zip = new ZipFileTest();
zip.compressZip("E:/study/j2se/io/root", "E:/study/j2se/io/extract/new.zip");
zip.extractZip("E:/study/j2se/io/extract/new.zip", "E:/study/j2se/io/extract/New folder");
}
}
感觉自己写的好复杂,这里需要注意的是 zipOutput.putNextEntry(new ZipEntry(parentPath + "/"));我在这里没有用File.separator,因为用这个,虽然能压缩成功,但是你解压的时候会把文件夹作为文件去处理,会导致错误,开始弄了半天没明白。
读取共享文件夹
package io;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
public class ReaderShareFile {
public void read() {
{
BufferedReader reader = null;
try {
SmbFile smbFile = new SmbFile("smb://username:password@192.168.10.4/Users/Administrator/Desktop/jack/test.txt");
if (smbFile.exists()) {
InputStream input = new SmbFileInputStream(smbFile);
reader = new BufferedReader(new InputStreamReader(input));
String str;
while ((str = reader.readLine()) != null) {
System.out.println(str);
}
}
} catch (IOException ex) {
Logger.getLogger(ReaderShareFile.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
reader.close();
} catch (IOException ex) {
Logger.getLogger(ReaderShareFile.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
public static void main(String args[]) {
ReaderShareFile test = new ReaderShareFile();
test.read();
}
}
要下载jcifs包
分享到:
相关推荐
在"RapidIO学习笔记"中,我们可以深入探讨以下几个关键知识点: 1. **协议层次结构**:RapidIO协议分为物理层(PHY)、串行链路层(SLL)和传输层(TL)。物理层处理实际的信号传输,串行链路层负责将并行数据转换...
《Factory IO学习版本详解》 Factory IO是一款模拟工业自动化生产线的软件,专为教育和培训设计,让学习者能够理解并掌握自动化系统的工作原理。它提供了丰富的模拟环境,包括机器人、传感器、传送带等,帮助用户在...
这个“javaIO学习课件”提供了非常详尽的教程,旨在帮助初学者和有经验的开发者深入理解Java I/O系统的工作原理和应用。 首先,我们来看一下IO_1.pdf,它可能涵盖了基础的I/O流概念。在Java中,I/O流被分为字节流和...
根据提供的文件信息,“io学习笔记”这一文档涵盖了IO学习的所有要点与笔记,下面将对这些内容进行详细解析,以便更好地理解和掌握IO相关的知识点。 ### IO基础概念 在计算机科学领域中,**IO**(Input/Output)指的...
"IO学习"这个主题涵盖了许多与数据传输相关的概念和技术,包括文件操作、流、缓冲、异步IO以及同步IO等。下面将对这些知识点进行详细的阐述。 1. **文件操作**:文件是数据持久化存储的基本单位。在编程中,我们...
在这个"java_IO学习代码"的压缩包中,我们很可能会找到一系列示例代码,帮助我们深入理解Java IO体系。 首先,让我们探讨一下Java IO的基本概念。Java IO模型基于流(Stream)的概念,流是一组有序的数据序列,可以...
这个压缩包包含了一份详尽的IO学习资料,其中包含了清晰注释的源码,非常适合初学者和有经验的开发者来深入理解Java IO系统。下面将详细阐述Java IO的主要知识点。 1. **流的概念**: Java中的IO操作基于流的概念...
IO学习心得1111111
根据给定的信息,本文将对Java IO的基本概念及其在实际应用中的使用进行深入解析。文章主要探讨了Java中处理输入/输出(IO)的操作...希望读者能够通过本文的学习,掌握Java IO的核心原理并能够在实际项目中灵活运用。
Java IO学习是一个重要的主题,尤其对于Java开发者而言,掌握IO流是进行数据读写、文件操作、网络通信等基础工作必不可少的技能。这篇博客的作者通过链接提供了对Java IO的深入理解和实践总结。 首先,我们要了解...
使用Date 类获取系统当前时间 Calendar类的使用 使用 Random 类的对象生成随机数 Collection 类的对象的使用 HashMap 对象以键和值的关系形式存储数据
有关io流的输入输出联系代码io流的输入输出文件的读写
关于java io 的学习 文档 打开方式 直接是记事本即可
以下是对Java IO的详细学习总结: ### 1. IO流概述 IO流是Java中处理输入输出的核心概念。它们可以被视为数据传输的管道,允许数据在源和目的地之间流动。Java将所有IO操作封装为流对象,分为四大类:字节流(Byte ...
在本篇"socket.io学习教程之深入学习篇(三)"中,我们将进一步探讨socket.io这个强大的实时通信库,它在Node.js环境中提供了基于事件的双向通信机制。在之前的教程中,我们可能已经了解了socket.io的基础知识和基本...
有2个文件有main(),其中一个是多线程的一条线一条线的读取,另一个是一个点一个点的读取,比较慢 博文链接:https://263796001-qq-com.iteye.com/blog/991351
Socket.IO 学习教程之基础介绍 Socket.IO 是一个基于事件的实时双向通讯库,它提供了实时的双向通讯功能,使得 Web 应用程序可以实时地传输数据。Socket.IO 的出现解决了传统 AJAX 轮询的延时和服务端负载的问题。 ...
java io学习以io,nio为基础,netty为辅程序员素养:掌握面向对象的需求分析和设计理解SOLID原则,理解常用设计模式,熟练掌握重构理解面向服务的架构理解Linux操作系统的一些概念,比如内核空间,用户空间,系统调用,...