`
阅读更多
读取目录下的文件
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学习笔记--互连协议的介绍

    在"RapidIO学习笔记"中,我们可以深入探讨以下几个关键知识点: 1. **协议层次结构**:RapidIO协议分为物理层(PHY)、串行链路层(SLL)和传输层(TL)。物理层处理实际的信号传输,串行链路层负责将并行数据转换...

    Factory IO学习版本

    《Factory IO学习版本详解》 Factory IO是一款模拟工业自动化生产线的软件,专为教育和培训设计,让学习者能够理解并掌握自动化系统的工作原理。它提供了丰富的模拟环境,包括机器人、传感器、传送带等,帮助用户在...

    javaIO学习课件 很详细的讲解

    这个“javaIO学习课件”提供了非常详尽的教程,旨在帮助初学者和有经验的开发者深入理解Java I/O系统的工作原理和应用。 首先,我们来看一下IO_1.pdf,它可能涵盖了基础的I/O流概念。在Java中,I/O流被分为字节流和...

    io学习笔记

    根据提供的文件信息,“io学习笔记”这一文档涵盖了IO学习的所有要点与笔记,下面将对这些内容进行详细解析,以便更好地理解和掌握IO相关的知识点。 ### IO基础概念 在计算机科学领域中,**IO**(Input/Output)指的...

    IO 学习

    "IO学习"这个主题涵盖了许多与数据传输相关的概念和技术,包括文件操作、流、缓冲、异步IO以及同步IO等。下面将对这些知识点进行详细的阐述。 1. **文件操作**:文件是数据持久化存储的基本单位。在编程中,我们...

    java_IO学习代码

    在这个"java_IO学习代码"的压缩包中,我们很可能会找到一系列示例代码,帮助我们深入理解Java IO体系。 首先,让我们探讨一下Java IO的基本概念。Java IO模型基于流(Stream)的概念,流是一组有序的数据序列,可以...

    最简单最好的IO学习资料 源码 注释清晰

    这个压缩包包含了一份详尽的IO学习资料,其中包含了清晰注释的源码,非常适合初学者和有经验的开发者来深入理解Java IO系统。下面将详细阐述Java IO的主要知识点。 1. **流的概念**: Java中的IO操作基于流的概念...

    IO学习心得1111111

    IO学习心得1111111

    浅谈java之IO学习经验

    根据给定的信息,本文将对Java IO的基本概念及其在实际应用中的使用进行深入解析。文章主要探讨了Java中处理输入/输出(IO)的操作...希望读者能够通过本文的学习,掌握Java IO的核心原理并能够在实际项目中灵活运用。

    java IO学习

    Java IO学习是一个重要的主题,尤其对于Java开发者而言,掌握IO流是进行数据读写、文件操作、网络通信等基础工作必不可少的技能。这篇博客的作者通过链接提供了对Java IO的深入理解和实践总结。 首先,我们要了解...

    java.io 学习

    使用Date 类获取系统当前时间 Calendar类的使用 使用 Random 类的对象生成随机数 Collection 类的对象的使用 HashMap 对象以键和值的关系形式存储数据

    io学习源代码Java代码

    有关io流的输入输出联系代码io流的输入输出文件的读写

    java io 学习文档

    关于java io 的学习 文档 打开方式 直接是记事本即可

    Java IO学习总结归纳(附代码)

    以下是对Java IO的详细学习总结: ### 1. IO流概述 IO流是Java中处理输入输出的核心概念。它们可以被视为数据传输的管道,允许数据在源和目的地之间流动。Java将所有IO操作封装为流对象,分为四大类:字节流(Byte ...

    socket.io学习教程之深入学习篇(三)

    在本篇"socket.io学习教程之深入学习篇(三)"中,我们将进一步探讨socket.io这个强大的实时通信库,它在Node.js环境中提供了基于事件的双向通信机制。在之前的教程中,我们可能已经了解了socket.io的基础知识和基本...

    IO学习扩展——BMP图片的保存与读取基础

    有2个文件有main(),其中一个是多线程的一条线一条线的读取,另一个是一个点一个点的读取,比较慢 博文链接:https://263796001-qq-com.iteye.com/blog/991351

    socket.io学习教程之基础介绍(一)

    Socket.IO 学习教程之基础介绍 Socket.IO 是一个基于事件的实时双向通讯库,它提供了实时的双向通讯功能,使得 Web 应用程序可以实时地传输数据。Socket.IO 的出现解决了传统 AJAX 轮询的延时和服务端负载的问题。 ...

    io:java io学习项目

    java io学习以io,nio为基础,netty为辅程序员素养:掌握面向对象的需求分析和设计理解SOLID原则,理解常用设计模式,熟练掌握重构理解面向服务的架构理解Linux操作系统的一些概念,比如内核空间,用户空间,系统调用,...

Global site tag (gtag.js) - Google Analytics