用户操作
[即时聊天] [发私信] [加为好友]
曹翔ID:java_xiang
16150次访问,排名7285(2)好友1人,关注者2
阿翔编程学
java_xiang的文章
原创 43 篇
翻译 0 篇
转载 7 篇
评论 8 篇
曹翔的公告
WebService,Java,J2EE 任何个人和单位均可免费复制,拷贝,复制时请注明出处。但如需商业用途或者使用,修改其中的全部或者部分代码,图片。请先和作者联系.
最近评论
asdf:很好,谢谢分享
xiang:恩,好吧,那句话怎么说的,反正就是帮人帮到底的意思吧。
丫头:这个多代码,别人找都难找,想想起他改良的办法啦,帮人帮到底么。。。。
xunmenglin:义愤填庸了~~~~
xunmenglin:我顶阿
楼主说得好啊
文章分类
收藏
    相册
    阿翔的相册
    Blog链接
    傻丫头的Blog
    冰冻小子的Blog
    大中华办公软件在线
    我的CSDN博客
    我的新浪Blog
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 阿翔编程学-Java文件操作收藏

    新一篇: 阿翔编程学-Java XML文件的验证 | 旧一篇: 阿翔编程学-JMail邮件接收类

    package com.ocuf.oais.common;

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Set;
    import java.util.TreeMap;

    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;

    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;

    import org.xml.sax.SAXException;

    import com.ocuf.oais.module.FileModule;

    /**
     * 文件操作
     *
     * @author CaoXiang
     *
     */
    public class FileCommon {
     List<String> list = new ArrayList<String>();

     private static List<String> APPLIST = new ArrayList<String>();

     private static List Mylist = new ArrayList<String>();
     
     private String realPath = this.getClass().getClassLoader().getResource("/").getPath();
     
     public static void main(String[] args) {
      FileCommon f = new FileCommon();
      try {
       //System.out.println(realPath);
       //f.showXml("Archive-Shrink-test.xml");
       f.readFolderByFilePath("E:/workspace/oaisWeb/src/com/ocuf/oais/metadata/file/fileread");
      } catch (Exception e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
     }
     
     public String xmlDebugForMessage(String filename) throws ParserConfigurationException, SAXException, IOException {
      StringBuffer buffer = new StringBuffer();
      String file = "中国国家税务总局.xml";
      System.out.println(realPath);
       DocumentBuilderFactory factory = DocumentBuilderFactory
         .newInstance();
       DocumentBuilder builder = factory.newDocumentBuilder();
       FileInputStream stream = new FileInputStream(
         realPath+"com//ocuf//oais//metadata//file//filetemp//"+ filename);
       Document document = builder.parse(stream);
       // 获得根节点
       Node root = document.getFirstChild();
       if (root.getTextContent() != null) {
        // System.out.println(root.getTextContent()+" ddd");
        // 获得所有子节点
        NodeList nodeList = root.getChildNodes();
        for(int i=0;i<nodeList.getLength();i++) {
         Node book = nodeList.item(i);
         String title2 = book.getNodeName();
         if(title2.equals("信息总体")) {
          NodeList b2 = nodeList.item(i).getChildNodes();
          for(int ii=0;ii<b2.getLength();ii++) {
           Node book2 = b2.item(ii);
           String title3 = book2.getNodeName();
           if(title3.equals("保护描述信息")) {
            NodeList b3 = b2.item(ii).getChildNodes();
            for(int iii=0;iii<b2.getLength();iii++) {
             Node book3 = b3.item(iii);
             String title4 = book3.getNodeName();
             if(title4.equals("参考信息")) {
              NodeList b4 = b3.item(iii).getChildNodes();
              for(int iiii=0;iiii<b2.getLength();iiii++) {
               Node book4 = b4.item(iiii);
               String title5 = book4.getNodeName();
               if(title5.equals("标识信息")) {
                NodeList list = book4.getChildNodes();
                for(int listsize=0; listsize<list.getLength(); listsize++) {
                 buffer.append(list.item(listsize).getTextContent().trim()+",");
                }
               }
              }
             }
            }
           }
          }
         }
        }
        // 关闭流
        stream.close();
       }
       //System.out.println(buffer.toString().substring(1, buffer.toString().length()));
       return buffer.toString().substring(1, buffer.toString().length());
     }

     /**
      * 文件的写入
      *
      * @param filePath(文件路径)
      * @param fileName(文件名)
      * @param args[]
      * @throws IOException
      */

     public void writeFile(String filePath, String fileName, String[] args)
       throws IOException {
      FileWriter fw = new FileWriter(filePath + fileName);
      PrintWriter out = new PrintWriter(fw);
      for (int i = 0; i < args.length; i++) {
       out.write(args[i]);
       out.println();
       out.flush();
      }
      fw.close();
      out.close();
     }

     /**
      *
      * 文件的写入
      *
      * @param filePath(文件路径)
      *
      * @param fileName(文件名)
      *
      * @param args
      *
      * @throws IOException
      *
      */

     public void writeFile(String filePath, String fileName, String args)
       throws IOException

     {

      FileWriter fw = new FileWriter(filePath + fileName);

      fw.write(args);

      fw.close();

     }

     /**
      *
      * 创建与删除文件
      *
      * @param filePath
      *
      * @param fileName
      *
      * @return 创建成功返回true
      *
      * @throws IOException
      *
      */

     public boolean createAndDeleteFile(String filePath, String fileName)
       throws IOException

     {

      boolean result = false;

      File file = new File(filePath, fileName);

      if (file.exists())

      {

       file.delete();

       result = true;

       System.out.println("文件已经删除!");

      }

      else

      {

       file.createNewFile();

       result = true;

       System.out.println("文件已经创建!");

      }

      return result;

     }

     /**
      *
      * 创建和删除目录
      *
      * @param folderName
      *
      * @param filePath
      *
      * @return 删除成功返回true
      *
      */

     public boolean createAndDeleteFolder(String folderName, String filePath)

     {

      boolean result = false;

      try

      {

       File file = new File(filePath + folderName);

       if (file.exists())

       {

        file.delete();

        System.out.println("目录已经存在,已删除!");

        result = true;

       }

       else

       {

        file.mkdir();

        System.out.println("目录不存在,已经建立!");

        result = true;

       }

      }

      catch (Exception ex)

      {

       result = false;

       System.out.println("CreateAndDeleteFolder is error:" + ex);

      }

      return result;

     }

     /**
      *
      * 输出目录中的所有文件及目录名字
      *
      * @param filePath
      *
      */
     public List readFolderByFilePath(String filePath) {
      //System.out.println(realPath);
      this.Mylist.clear();
      File file = new File(filePath);
      File[] tempFile = file.listFiles();
      List backList = new ArrayList();
      //System.out.println(tempFile.length);
      for (int i = 0; i < tempFile.length; i++) {
       if (tempFile[i].isFile()) {
        // System.out.println("File : "+tempFile[i].getName());
       }
       if (tempFile[i].isDirectory()) {
        File file2 = new File(filePath+"/"+tempFile[i].getName());
        //System.out.println("Directory : "+tempFile[i].getName());
        File[] tempFile2 = file2.listFiles();
        for (int j = 0; j < tempFile2.length; j++) {
        if(tempFile2[j].isDirectory()) {
         //System.out.println("Directory : "+tempFile2 [j].getName());
         try {
          //System.out.println(filePath+"/" + tempFile[i].getName() + "/" + tempFile2 [j].getName());
          this.Mylist = this.getFolderByFilePath2(filePath+"/" + tempFile[i].getName() + "/" + tempFile2 [j].getName());
          backList.addAll(this.Mylist);
         } catch (Exception e) {
          e.printStackTrace();
         }
        }
        }
       }
      }
      return backList;
     }

     /*
      * (non-Javadoc)
      *
      * @see com.jxsafe.source.common.conf.ISaxReader#getChildNodes(org.w3c.dom.NodeList)
      */
     public List getChildNodes(NodeList childNode) {
      // System.out.println(childNode.getLength());
      for (int i = 0; i < childNode.getLength(); i++) {
       Node obj = (Node) childNode.item(i);
       // System.out.println(obj.getFirstChild().getNodeName());
       // 当该节点没有属性时
       if (!obj.getNodeName().substring(0, 1).equals("#")) {
        // System.out.println(obj.getParentNode().getNodeName());
        if (obj.hasChildNodes()) {
         String title = obj.getFirstChild().getTextContent().trim();
         if (title.equals("") || title == null) {
         } else {
          if (obj.getParentNode().getNodeName().equals("头信息")) {
           // System.out.println(list+" ddd");
           list.add(title);
          } else {
          }
         }
        }
        // 获得该节点的子节点 递归所有的节点
        NodeList childNodes = obj.getChildNodes();
        if (childNodes.getLength() > 0) {
         getChildNodes(childNodes);
        }
       }
      }
      return list;
     }

     /*
      * (non-Javadoc)
      *
      * @see com.jxsafe.source.common.conf.ISaxReader#getChildNodes(org.w3c.dom.NodeList)
      */
     public List getChildNodes2(NodeList childNode) {
      List<String> list = new ArrayList<String>();
      for (int i = 0; i < childNode.getLength(); i++) {
       Node obj = (Node) childNode.item(i);
       // 获得该节点的子节点 递归所有的节点
       NodeList childNodes = obj.getChildNodes();
       if (childNodes.getLength() > 0) {
        for (int j = 0; j < childNodes.getLength(); j++) {
         Node book = childNodes.item(i);
         String title2 = book.getFirstChild().getNodeValue();
         // System.out.println(title2);
         list.add(title2);
        }
       }
      }
      // System.out.println(list);
      return list;
     }

     /*
      * (non-Javadoc)
      *
      * @see com.jxsafe.source.common.conf.ISaxReader#showXml()
      */
     public List showXml(String file) throws Exception {
      list.clear();
      if (file != null) {
       DocumentBuilderFactory factory = DocumentBuilderFactory
         .newInstance();
       DocumentBuilder builder = factory.newDocumentBuilder();
       FileInputStream stream = new FileInputStream(
         realPath+"com//ocuf//oais//metadata//file//filetemp//"
           + file);
       // InputStream stream =
       // this.getClass().getResourceAsStream("E:\\workspace\\oaisWeb\\src\\com\\ocuf\\oais\\metadata\\file\\filetemp\\"+file);
       // InputStream schemaStr =
       // this.getClass().getResourceAsStream("SubmitInfoPackage.xsd");
       Document document = builder.parse(stream);
       // 获得根节点
       Node root = document.getFirstChild();
       if (root.getTextContent() != null) {
        // System.out.println(root.getTextContent()+" ddd");
        // 获得所有子节点
        NodeList nodeList = root.getChildNodes();
        List v = this.getChildNodes(nodeList);
        // 关闭流
        stream.close();
        // ValidatXML valitate = new ValidatXML();
        // valitate.run(file);
        return v;
       } else {
        return null;
       }
      }
      return new ArrayList();
     }
     
     /*
      * (non-Javadoc)
      *
      * @see com.jxsafe.source.common.conf.ISaxReader#showXml()
      */
     public List showXml2(String filepath, String file) throws Exception {
      list.clear();
      if (file != null) {
       DocumentBuilderFactory factory = DocumentBuilderFactory
         .newInstance();
       DocumentBuilder builder = factory.newDocumentBuilder();
       FileInputStream stream = new FileInputStream(
         filepath + "/"
           + file);
       // InputStream stream =
       // this.getClass().getResourceAsStream("E:\\workspace\\oaisWeb\\src\\com\\ocuf\\oais\\metadata\\file\\filetemp\\"+file);
       // InputStream schemaStr =
       // this.getClass().getResourceAsStream("SubmitInfoPackage.xsd");
       Document document = builder.parse(stream);
       // 获得根节点
       Node root = document.getFirstChild();
       if (root.getTextContent() != null) {
        // System.out.println(root.getTextContent()+" ddd");
        // 获得所有子节点
        NodeList nodeList = root.getChildNodes();
        List v = this.getChildNodes(nodeList);
        // 关闭流
        stream.close();
        // ValidatXML valitate = new ValidatXML();
        // valitate.run(file);
        return v;
       } else {
        return null;
       }
      }
      return new ArrayList();
     }
     
     /**
      * 获得文件
      *
      * @param filePath
      * @throws Exception
      */
     public List getFolderByFilePath2(String filePath) throws Exception {
      List<FileModule> list = new ArrayList<FileModule>();
      File file = new File(filePath);
      File[] tempFile = file.listFiles();
      for (int i = 0; i < tempFile.length; i++) {
       if (tempFile[i].isFile()) {
        FileModule fileModule = new FileModule();
        // System.out.println(tempFile[i].getName());
        List v = this.showXml2(filePath,tempFile[i].getName());
        // System.out.println(v);
        // System.out.println(tempFile[i].getName()+v.size());
        // 设置相关参数值
        if (v != null) {
         String fname = tempFile[i].getName().substring(0,
           tempFile[i].getName().indexOf("."));
         fileModule.setFileid(String.valueOf(i));
         fileModule.setFilename(fname);
         fileModule.setFilepath(tempFile[i].getPath());
         //取出需要的数据用/分开
         //System.out.println(tempFile[i].getPath());
         //String[] splitArr = tempFile[i].getPath().split("\\");
         //System.out.println(tempFile[i].getPath().indexOf("fileread"));
         //System.out.println(tempFile[i].getPath().substring(tempFile[i].getPath().indexOf("fileread")+9, tempFile[i].getPath().length()));
         String newStr = tempFile[i].getPath().substring(tempFile[i].getPath().indexOf("fileread")+9, tempFile[i].getPath().length()).trim().toString();
         int firstIndex = newStr.indexOf("\\");
         int lastIndex = newStr.lastIndexOf("\\");
         String firstStr = newStr.substring(0, firstIndex);
         String secondStr = newStr.substring(firstIndex+1, lastIndex);
         String totalStr = firstStr+",,,"+secondStr;
         fileModule.setRealpath(totalStr);
         //System.out.println(firstStr+" d " +secondStr);
         // 单位名称
         // String s = v.get(0).toString();
         // System.out.println(s);
         fileModule.setCompanyaddress((String) v.get(0));
         // 单位URI标识
         fileModule.setUri((String) v.get(1));
         // 登陆密码
         fileModule.setPassword((String) v.get(2));
         // 版本号
         fileModule.setVersion((String) v.get(3));
         // 递交时间
         fileModule.setDatetime((String) v.get(4));
         // 紧急程度
         fileModule.setLeavel((String) v.get(5));
         // 类型
         fileModule.setType((String) v.get(6));
         // 密级
         fileModule.setWordcorp((String) v.get(7));
         // IP
         fileModule.setIp((String) v.get(8));
         // 电子签章
         fileModule.setCardnumber((String) v.get(9));
         list.add(fileModule);
        }

       }
      }
      return list;
     }

     /**
      * 获得文件
      *
      * @param filePath
      * @throws Exception
      */
     public List getFolderByFilePath(String filePath) throws Exception {
      List<FileModule> list = new ArrayList<FileModule>();
      File file = new File(filePath);
      File[] tempFile = file.listFiles();
      for (int i = 0; i < tempFile.length; i++) {
       if (tempFile[i].isFile()) {
        FileModule fileModule = new FileModule();
        // System.out.println(tempFile[i].getName());
        List v = this.showXml(tempFile[i].getName());
        // System.out.println(v);
        // System.out.println(tempFile[i].getName()+v.size());
        // 设置相关参数值
        if (v != null) {
         String fname = tempFile[i].getName().substring(0,
           tempFile[i].getName().indexOf("."));
         fileModule.setFileid(String.valueOf(i));
         fileModule.setFilename(fname);
         fileModule.setFilepath(tempFile[i].getPath());
         // 单位名称
         // String s = v.get(0).toString();
         // System.out.println(s);
         fileModule.setCompanyaddress((String) v.get(0));
         // 单位URI标识
         fileModule.setUri((String) v.get(1));
         // 登陆密码
         fileModule.setPassword((String) v.get(2));
         // 版本号
         fileModule.setVersion((String) v.get(3));
         // 递交时间
         fileModule.setDatetime((String) v.get(4));
         // 紧急程度
         fileModule.setLeavel((String) v.get(5));
         // 类型
         fileModule.setType((String) v.get(6));
         // 密级
         fileModule.setWordcorp((String) v.get(7));
         // IP
         fileModule.setIp((String) v.get(8));
         // 电子签章
         fileModule.setCardnumber((String) v.get(9));
         list.add(fileModule);
        }

       }
      }
      return list;
     }
     
     public File[] sortFiles(String filepath) {
      TreeMap   tm=new   TreeMap();  
            File   f=new   File(filepath);  
            File   subFile[]=f.listFiles(); 
            File[] fileArr = new File[subFile.length];
            int   fileNum=subFile.length;  
            for(int   i=0;i<fileNum;i++)  
                {  
                    Long   tempLong=new   Long(subFile[i].lastModified());  
                    tm.put(tempLong,subFile[i]);  
                }  
          Set   set=tm.keySet();  
          Iterator   iter=set.iterator();  
          int i=0;
          while(iter.hasNext())  
          {  
            Object   key=iter.next();  
            Object   objValue=tm.get(key);  
            File   tempFile=(File)objValue;  
            System.out.println(tempFile.getPath()+"\t"+key.toString()); 
            fileArr[i]=tempFile;
            i++;
          }    
          return fileArr;
     }

     /**
      * 判断文件夹中是否存在文件,没有文件返回错误页
      */
     public boolean countFolderByFilePath(String filePath) {
      File file = new File(filePath);
      File[] tempFile = file.listFiles();
      if (tempFile.length > 0) {
       return true;
      } else {
       return false;
      }
     }

     /**
      *
      * 检查文件中是否为一个空
      *
      * @param filePath
      *
      * @param fileName
      *
      * @return 为空返回true
      *
      * @throws IOException
      *
      */

     public boolean fileIsNull(String filePath, String fileName)
       throws IOException

     {

      boolean result = false;

      FileReader fr = new FileReader(filePath + fileName);

      if (fr.read() == -1)

      {

       result = true;

       System.out.println(fileName + " 文件中没有数据!");

      }

      else

      {

       System.out.println(fileName + " 文件中有数据!");

      }

      fr.close();

      return result;

     }

     /**
      *
      * 读取文件中的所有内容
      *
      * @param filePath
      *
      * @param fileName
      *
      * @throws IOException
      *
      */

     public void readAllFile(String filePath, String fileName)
       throws IOException

     {

      FileReader fr = new FileReader(filePath + fileName);

      int count = fr.read();

      while (count != -1)

      {

       System.out.print((char) count);

       count = fr.read();

       if (count == 13)

       {

        fr.skip(1);

       }

      }

      fr.close();

     }

     /**
      *
      * 一行一行的读取文件中的数据
      *
      * @param filePath
      *
      * @param fileName
      *
      * @throws IOException
      *
      */

     public void readLineFile(String filePath, String fileName)
       throws IOException

     {

      FileReader fr = new FileReader(filePath + fileName);

      BufferedReader br = new BufferedReader(fr);

      String line = br.readLine();

      while (line != null)

      {

       System.out.println(line);

       line = br.readLine();

      }

      br.close();

      fr.close();

     }
     
     /**
      * 字符编码转换
      * @param param
      * @return
      */
     public static String UTF82GB2312(String param)
       {
         try
         {
             new String(param.getBytes("ISO8859-1"), "UTF-8");
             return new String(param.getBytes("ISO8859-1"), "GBK");
         }
         catch(Exception e)
         {
             return null;
         }
       }
     
     /**
      * 字符编码转换
      * @param buf
      * @return
      */
     private static String UTF82GB2312(byte buf[])
       {
         int len = buf.length;
         StringBuffer sb = new StringBuffer(len/2);
         for(int i =0; i<len;i++)
         {
             if(by2int(buf[i])<=0x7F) sb.append((char)buf[i]);
             else if(by2int(buf[i])<=0xDF && by2int(buf[i])>=0xC0)
             {
               int bh = by2int(buf[i] & 0x1F);
               int bl = by2int(buf[++i] & 0x3F);
               bl = by2int(bh << 6 | bl);
               bh = by2int(bh >> 2);
               int c = bh<<8 | bl;
               sb.append((char)c);
             } else if(by2int(buf[i])<=0xEF && by2int(buf[i])>=0xE0){
               int bh = by2int(buf[i] & 0x0F);
               int bl = by2int(buf[++i] & 0x3F);
               int bll = by2int(buf[++i] & 0x3F);
               bh = by2int(bh << 4 | bl>>2);
               bl = by2int(bl << 6 | bll);
               int c = bh<<8 | bl;
         //空格转换为半角
         if(c==58865){
             c = 32;
         }
               sb.append((char)c);
             }
         }
         return sb.toString();
       }

     /**
      * 字符编码转换
      * @param b
      * @return
      */
     private static int by2int(int b)
       {
         return b & 0xff;
       }

    }
     

    发表于 @ 2007年05月31日 14:59:00|评论(loading...)|编辑

    新一篇: 阿翔编程学-Java XML文件的验证 | 旧一篇: 阿翔编程学-JMail邮件接收类

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 曹翔