当前位置 主页 > 站长资源大全 > IIS7 FTP大全 > 最大化 缩小

    ftp上传文件时数据不完全该怎么解决?

    栏目:IIS7 FTP大全 时间:2019-07-17 09:37

      相信大家在使用ftp上传文件的时候,都是先创建了文件,然后再上传。如果出现程序读取文件不完全,出现只读取一部分不完成的数据时,这类的问题该如何解决呢?
      第一种方法:在上传文件之前,创建一个临时文件名称保存在客户端,在上传完毕再重命名。而重命名是修改注册表所以不会产生过程中数据不一致的问题。
      第二种方法:把文件打开,并在文件尾追加一个标识内容。然后关掉文件,再重新打开文件,确定多写入的内容是否成功,如果不成功,说明文件还在被占用,如果成功了就说明ftp上传结束了。
      最后说明一下,在使用ftp客户端上传文件的时候,无法在文件上追加更多的内容,而且java代码不报错,才会有第二种方法。
      java代码如下:
      package com.ehl.tvc.util;
      import java.io.File;
      import java.io.FileInputStream;
      import java.io.FileNotFoundException;
      import java.io.FileOutputStream;
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.OutputStream;
      import java.util.List;
      import org.apache.commons.io.IOUtils;
      public class FileUtil {
      private static String endTag = "end";
      /**
      * 判断文件是否写入内容完毕,如果完毕返回true,反之false
      * @param f
      * @return
      */
      public static boolean checkIniTransfered(File f){
      OutputStream output = null;
      try {
      output = new FileOutputStream(f, true);
      output.write((endTag+"\n").getBytes());
      output.flush();
      output.close();
      } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }finally {
      IOUtils.closeQuietly(output);
      }
      InputStream input =null;
      try {
      input = new FileInputStream(f);
      List<String> list =  IOUtils.readLines(input);
      if(list.size()>0){
      String endstr =list.get(list.size()-1);
      if(endTag.equals(endstr)){
      return true;
      }
      }
      } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }finally {
      IOUtils.closeQuietly(input);
      }
      return false;
      }
      }
山东11选5 山东11选5走势 金誉彩票计划群 极速赛车怎么玩赚钱 凤凰娱乐彩票计划群 山东11选5 GT彩票计划群 全民彩票计划群 大乐购彩票计划群 山东11选5计划