`
andrew.yulong
  • 浏览: 172626 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

IO操作(已封装)--java

    博客分类:
  • java
阅读更多

和大家见面了,本人言语突然很少,开门见山吧

package  cn.vetech.framework.util;

import  java.io.BufferedReader;
import  java.io.File;
import  java.io.FileInputStream;
import  java.io.FileOutputStream;
import  java.io.IOException;
import  java.io.InputStream;
import  java.io.InputStreamReader;
import  java.io.OutputStream;
import  java.io.PrintWriter;

import  org.apache.struts.upload.FormFile;

import  cn.vetech.framework.source.Constants;

/**
 * 用户文件的 读 写 目录的创建等
 * 
 * 
@author  zl
 * 
 
*/
public   class  FileOperate {
    
private  String message;

    
private  String FILESPARA  =   " / " ;

    
private  String spath  =  Constants.APPPRTH;

    
public  FileOperate() {
    }

    
/**
     * 强制用UTF-8 编码读 整个系统编码采用utf-8
     * 
     * 
@param  filePathAndName
     * 
@return
     
*/
    
public  String readTxt(String filePathAndName) {
        
return  readTxt(filePathAndName,  " UTF-8 " );
    }

    
/**
     * 读取文本文件内容
     * 
     
*/
    
public  String readTxt(String filePathAndName, String encoding) {
        encoding 
=  encoding.trim();
        StringBuffer str 
=   new  StringBuffer( "" );
        String st 
=   "" ;
        
try  {
            FileInputStream fs 
=   new  FileInputStream(filePathAndName);
            InputStreamReader isr;
            
if  (encoding.equals( "" )) {
                isr 
=   new  InputStreamReader(fs);
            } 
else  {
                isr 
=   new  InputStreamReader(fs, encoding);
            }
            BufferedReader br 
=   new  BufferedReader(isr);
            
try  {
                String data 
=   "" ;
                
while  ((data  =  br.readLine())  !=   null ) {
                    str.append(data 
+   "   " );
                }
            } 
catch  (Exception e) {
                str.append(e.toString());
            }
            st 
=  str.toString();
        } 
catch  (IOException es) {
            st 
=   "" ;
        }
        
return  st;
    }

    
/**
     * 强制用UTF-8 编码保存 避免因为操作系统不同而编码不同。
     * 
     * 
@param  path
     * 
@param  filename
     * 
@param  fileContent
     
*/
    
public   void  writeTxt(String path, String filename, String fileContent) {
        writeTxt(path, filename, fileContent, 
" UTF-8 " );

    }

    
/**
     * 有编码方式的文件创建
     
*/
    
public   void  writeTxt(String path, String filename, String fileContent, String encoding) {

        
try  {
            File file 
=   new  File(path);
            
if  ( ! file.exists()) {
                file.mkdirs();
            }
            file 
=   new  File(path  +  FILESPARA  +  filename);
            PrintWriter pwrite 
=   null ;
            
if  (encoding  !=   null   &&   ! "" .equals(encoding)) {
                pwrite 
=   new  PrintWriter(file, encoding);
            } 
else  {
                pwrite 
=   new  PrintWriter(file);
            }
            pwrite.println(fileContent);
            pwrite.close();
        } 
catch  (Exception e) {
            e.printStackTrace();
        }
    }

    
/**
     * 拷贝目录树 把一个目录下的所有东西包括子目录 同时拷贝到 另外一个目录
     * 
     * 
@param  sourceDir
     * 
@param  targetDir
     * 
@throws  Exception
     
*/
    
public   void  copyDir(String sourceDir, String targetDir)  throws  Exception {
        String url1 
=  sourceDir;
        String url2 
=  targetDir;
        
if  ( ! ( new  File(url2)).exists()) {
            (
new  File(url2)).mkdirs();
        }
        File[] file 
=  ( new  File(url1)).listFiles();
        
for  ( int  i  =   0 ; i  <  file.length; i ++ ) {
            
if  (file[i].isFile()) {
                file[i].toString();
                FileInputStream input 
=   new  FileInputStream(file[i]);
                FileOutputStream output 
=   new  FileOutputStream(url2  +  System.getProperty( " file.separator " )
                        
+  (file[i].getName()).toString());
                
byte [] b  =   new   byte [ 1024   *   5 ];
                
int  len;
                
while  ((len  =  input.read(b))  !=   - 1 ) {
                    output.write(b, 
0 , len);
                }
                output.flush();
                output.close();
                input.close();
            } 
else   if  (file[i].isDirectory()) {
                String url_2_dir 
=  url2  +  System.getProperty( " file.separator " +  file[i].getName();
                copyDir(file[i].getPath(), url_2_dir);
            }
        }
    }

    
/**
     * 新建目录
     * 
     * 
@param  folderPath
     *            目录
     * 
@return  返回目录创建后的路径
     
*/
    
public  String createFolder(String folderPath) {
        String txt 
=  folderPath;
        
try  {
            java.io.File myFilePath 
=   new  java.io.File(txt);
            txt 
=  folderPath;
            
if  ( ! myFilePath.exists()) {
                myFilePath.mkdirs();
            }
        } 
catch  (Exception e) {
            message 
=   " 创建目录操作出错 " ;
        }
        
return  txt;
    }

    
/**
     * 删除文件
     * 
     * 
@param  filePathAndName
     *            文本文件完整绝对路径及文件名
     * 
@return  Boolean 成功删除返回true遭遇异常返回false
     
*/
    
public   boolean  delFile(String filePathAndName) {
        
boolean  bea  =   false ;
        
try  {
            String filePath 
=  filePathAndName;
            File myDelFile 
=   new  File(filePath);
            
if  (myDelFile.exists()) {
                myDelFile.delete();
                bea 
=   true ;
            } 
else  {
                bea 
=   false ;
                message 
=  (filePathAndName  +   " <br>删除文件操作出错 " );
            }
        } 
catch  (Exception e) {
            message 
=  e.toString();
        }
        
return  bea;
    }

    
/**
     * 删除文件夹
     * 
     * 
@param  folderPath
     *            文件夹完整绝对路径
     * 
@return
     
*/
    
public   void  delFolder(String folderPath) {
        
try  {
            delAllFile(folderPath); 
//  删除完里面所有内容
            String filePath  =  folderPath;
            filePath 
=  filePath.toString();
            java.io.File myFilePath 
=   new  java.io.File(filePath);
            myFilePath.delete(); 
//  删除空文件夹
        }  catch  (Exception e) {
            message 
=  ( " 删除文件夹操作出错 " );
        }
    }

    
/**
     * 删除指定文件夹下所有文件
     * 
     * 
@param  path
     *            文件夹完整绝对路径
     * 
@return
     * 
@return
     
*/
    
public   boolean  delAllFile(String path) {
        
boolean  bea  =   false ;
        File file 
=   new  File(path);
        
if  ( ! file.exists()) {
            
return  bea;
        }
        
if  ( ! file.isDirectory()) {
            
return  bea;
        }
        String[] tempList 
=  file.list();
        File temp 
=   null ;
        
for  ( int  i  =   0 ; i  <  tempList.length; i ++ ) {
            
if  (path.endsWith(File.separator)) {
                temp 
=   new  File(path  +  tempList[i]);
            } 
else  {
                temp 
=   new  File(path  +  File.separator  +  tempList[i]);
            }
            
if  (temp.isFile()) {
                temp.delete();
            }
            
if  (temp.isDirectory()) {
                delAllFile(path 
+   " / "   +  tempList[i]); //  先删除文件夹里面的文件
                delFolder(path  +   " / "   +  tempList[i]); //  再删除空文件夹
                bea  =   true ;
            }
        }
        
return  bea;
    }

    
/**
     * 复制单个文件
     * 
     * 
@param  oldPathFile
     *            准备复制的文件源
     * 
@param  newPathFile
     *            拷贝到新绝对路径带文件名
     * 
@return
     
*/
    
public   void  copyFile(String oldPathFile, String newPathFile) {
        
try  {
            
int  bytesum  =   0 ;
            
int  byteread  =   0 ;
            File oldfile 
=   new  File(oldPathFile);
            
if  (oldfile.exists()) {  //  文件存在时
                InputStream inStream  =   new  FileInputStream(oldPathFile);  //  读入原文件
                FileOutputStream fs  =   new  FileOutputStream(newPathFile);
                
byte [] buffer  =   new   byte [ 1444 ];
                
while  ((byteread  =  inStream.read(buffer))  !=   - 1 ) {
                    bytesum 
+=  byteread;  //  字节数 文件大小
                    
//   // System.out.println(bytesum);
                    fs.write(buffer,  0 , byteread);
                }
                inStream.close();
            }
        } 
catch  (Exception e) {
            message 
=  ( " 复制单个文件操作出错 " );
        }
    }

    
/**
     * 移动文件
     * 
     * 
@param  oldPath
     * 
@param  newPath
     * 
@return
     
*/
    
public   void  moveFile(String oldPath, String newPath) {
        copyFile(oldPath, newPath);
        delFile(oldPath);
    }

    
/**
     * 移动目录
     * 
     * 
@param  oldPath
     * 
@param  newPath
     * 
@return
     * 
@throws  Exception
     
*/
    
public   void  moveFolder(String sourceDir, String targetDir)  throws  Exception {
        copyDir(sourceDir, targetDir);
        delFolder(sourceDir);
    }

    
public  String getMessage() {
        
return   this .message;
    }

    
/**
     * ybfjm@163.com 扩充
     
*/
    
/**  以下是保存文件,读取文件需要用到的方法*  */
    
public  String getStringFilePath(String id) {
        String strPath 
=   "" ;
        
//  生成一个目录,生成年度、月份目录
        String sfolder_year  =  id.substring( 0 4 );
        String sfolder_month 
=  id.substring( 4 6 );
        strPath 
=  spath  +   " /updownFiles/ "   +  sfolder_year  +  FILESPARA  +  sfolder_month  +  FILESPARA;
        
return  strPath;
    }

    
public  String getFileByPathId(String pathFile) {
        File myFile 
=   new  File(pathFile);
        
if  (myFile.exists())
            
return   new  FileOperate().readTxt(pathFile);
        
else
            
return   "" ;
    }

    
public   void  saveFileByPathId(String path, String id, String nr) {
        
new  FileOperate().writeTxt(path, id  +   " .txt " , nr);
    }

    
public   void  delFileByPathId(String pathFile) {
        File myFile 
=   new  File(pathFile);
        
if  (myFile.exists())
            
new  FileOperate().delFile(pathFile);
    }

    
/*
     * 用于上传文件保存 如果saveFileName 为空那么将以FormFile 文件名保存 不包括扩展名,扩展名自动引用 返回保存的文件名
     * 如果返回为空表示有错误
     
*/
    
public  String uploadFileSave(FormFile file, String savePath, String saveFileName) {
        String slowdamc 
=   "" ;
        
if  (file  ==   null ) {
            
return   "" ;
        }
        
try  {
            InputStream stream 
=  file.getInputStream(); //  把文件读入
        
//     ByteArrayOutputStream baos = new ByteArrayOutputStream();
            String fileName  =  file.getFileName().toLowerCase();
            
if  (fileName  ==   null   ||   "" .equals(fileName)) {
                
return   "" ;
            }
            
if  (saveFileName  ==   null   ||   "" .equals(saveFileName)) {
                slowdamc 
=  fileName;
            } 
else  {
                
if  (fileName.indexOf( " . " !=   - 1 ) {
                    slowdamc 
=  saveFileName  +   " . "   +  getFileExt(fileName);
                } 
else  {
                    slowdamc 
=  saveFileName;
                }

            }
    
//         long isize = file.getFileSize();
            
//  如果目录不存在就创建目录
            createFo
分享到:
评论

相关推荐

    commons-io-2.11.0-bin.zip

    Apache Commons IO是一个非常重要的Java库,它提供了大量的实用工具类,用于处理输入/输出操作。在标题中提到的"commons-io-2.11.0-bin.zip"是Apache Commons IO库的一个二进制发行版,版本号为2.11.0。这个压缩包...

    commons-io-2.2

    9. **异常处理**:Apache Commons IO封装了一些常见的I/O异常,如`IOExceptionWrapper`,提供了更友好的错误信息和处理机制。 10. **Maven依赖**:在Maven项目中,可以直接通过添加以下依赖引入Apache Commons IO ...

    java工具包封装对xml的操作javamail,翻译,io操作

    3. **文件I/O操作**:在Java中,文件I/O操作是通过java.io包提供的类来实现的。封装文件I/O操作意味着将常见的读写文件、创建文件、删除文件等操作抽象成易于使用的函数。例如,可能有一个`readFileToString(String ...

    t-io百万级网络框架 v3.8.5.zip

    4. Socket包装类:封装了NIO的SocketChannel,提供更加面向对象的API,简化了开发者的操作。 三、t-io 3.8.5版本更新内容 虽然没有具体列出v3.8.5版本的更新日志,但通常这种版本更新会包含性能优化、bug修复、新...

    commons-io-2.4.jar包 官方免费版

    在开发环境中,如Eclipse和MyEclipse,引入`commons-io-2.4.jar`作为项目依赖,可以极大地提高开发效率,因为这些通用的IO操作已经封装好,开发者无需从头实现。标签中的“jar包”表明这是一个可以直接在Java应用中...

    文档JAVA-IO流

    ### 文档JAVA-IO流 #### 一、IO流概述 1. **什么是IO** - I代表**输入**(input),O代表**输出**(output)。在Java中,所有负责输入输出的类都位于`java.io`包内。这些类主要用于进行数据的输入输出操作。 2. **流...

    java小项目练习IO实现

    在Java编程领域,IO(Input/Output)技术是不可或缺的一部分,尤其在处理数据持久化、文件操作、网络通信等方面发挥着重要作用。在这个“java小项目练习IO实现”中,我们将探讨如何利用Java的IO流来实现本地数据的...

    自己封装的IO核NIO

    总的来说,"自己封装的IO核NIO"项目通过封装Java的IO和NIO,提供了更高效、易用的网络通信工具,特别是对于需要频繁与服务器交互的应用,如微信开发,能显著提升开发体验。而其中的HTTP客户端则进一步简化了HTTP请求...

    commons-io-2.3.jar

    Apache Commons IO库是Java开发者必备的工具包之一,尤其是其中的commons-io-2.3.jar版本,它为处理输入/输出流、文件、字符集转换、线程安全的读写操作等提供了大量实用且高效的类和方法。这个jar包在实际开发中...

    javaIO流知识大总结

    Java IO系统提供了丰富的类库,使得开发者能够方便地处理输入和输出操作。在这个大总结中,我们将深入探讨Java IO流的基本概念、分类、常用类以及实践应用。 1. **基本概念** - **流(Stream)**:在Java中,流是...

    JAVAIO操作总结

    Java IO操作是Java编程中非常重要的一个部分,它主要用于数据的输入输出,包括从文件、网络、内存等来源获取数据,以及向这些目的地发送数据。本文将对Java IO中的节点流和处理流进行详细的总结。 首先,我们来看...

    Java-package-commons-io-2.11.0

    Java commons-io-2.11.0,第三方封装用于处理文件IO读写。 Java原生的读写处理并没有那么方便,使用上需要开发者自己注意和手写处理许多问题。 commons-io的封装可以屏蔽这些繁杂的处理,让开发者开箱即用。 注意本...

    java IO(下)

    **过滤流**(处理流)是在Java IO系统中的一个重要概念,它建立在已有的流对象之上,并为其添加了额外的功能或性能优化。与节点流不同,过滤流本身并不直接连接到数据源或目标,而是作为中间层,通过装饰器模式对底层...

    java IO流学习笔记

    在Java中,`java.io.File`类用于封装文件路径,可以用来创建文件对象,并且提供了许多与文件和目录交互的方法。 - 创建File对象: ```java File file = new File("a.txt"); ``` - 常用方法介绍: - `...

    Java IO流文档

    为了支持不同类型的流之间的互操作,Java提供了`InputStreamReader`和`OutputStreamWriter`来实现从字节流到字符流的转换。 - **InputStreamReader**:将字节流转换为字符流。 - **OutputStreamWriter**:将字符...

    Java对IO类File的操作

    - `FileMethods.java`: 这个类可能封装了一些`File`类的常用操作,如创建、删除、复制等。 - `CopyTextFile.java`: 显示了如何复制文本文件,可能使用了`FileInputStream`和`FileOutputStream`,或者使用了`Files....

    commons-io-1.4.rar源文件及jar文件

    Apache Commons IO 是一个Java库,专门用于处理输入/输出(I/O)操作。这个库提供了大量的工具类,扩展了Java标准库中关于I/O的功能,使得开发者在处理文件、流、字符转换、过滤器和读写操作时更加方便。在这个...

    javaIO流笔记

    在Java中,输入/输出(Input/Output,简称IO)操作是程序与外部设备进行数据交换的重要方式。Java提供了强大的IO流处理类库,主要位于`java.io`包中。这些类库支持多种数据类型的操作,包括文本文件、二进制文件等。...

    javaio源码-jse-io-http-server:JavaHTTPServer的源代码,用于>DevStudy.net课程

    Java IO API提供了一系列类和接口,用于处理输入和输出操作,包括文件读写、网络通信等。在这个主题中,我们将深入探讨Java HTTP Server的源代码,这是Java标准版(JSE)中的一个组件,它允许开发者创建简单的HTTP...

    Java图书管理系统(IO流版)(csdn)————程序.pdf

    本文总结了Java图书管理系统(IO流版)的主要知识点,涵盖了Java基础语法、流程控制、面向对象思想、封装、继承、多态、接口、异常、集合、IO流等多方面的知识。 一、Java基础语法 * 掌握Java的基本语法,包括变量...

Global site tag (gtag.js) - Google Analytics