【问题标题】:How to read a large file from FTP location in server如何从服务器中的 FTP 位置读取大文件
【发布时间】:2017-03-22 11:08:17
【问题描述】:

我必须从 FTP 位置读取大型(例如 20mb)管道分隔文件并存储到数据库中。最好的方法是什么。

一些方法: 1.将文件复制到本地,然后读取并保存到数据库。 2.直接从流中读取并保存到数据库中。

请提出一些有效的方法。

【问题讨论】:

    标签: java ftp inputstream bufferedreader


    【解决方案1】:

    我认为option-1会更好,

    在选项 2 的情况下 - 如果出现异常怎么办 - 在使用流读取文件时或在 DB 中写入文件时出现异常,您将如何确切知道失败的位置,

    使用选项 1,您可以存储文件 temp directory ,然后将文件写入 DB,然后从 temp 目录中删除或存档。

    在文件系统上存档文件会更可取 - 它将在将来的参考中使用。

    两者都有很多例子 -

    对于从 ftp 下载文件,您可以按照 - http://www.codejava.net/java-se/networking/ftp/java-ftp-file-download-tutorial-and-example

    【讨论】:

      【解决方案2】:

      当它是 sql 或 csv 文件时,您可以通过 ssh 尝试。

      mysql -u root -p
      
      set global net_buffer_length=1000000; --Set network buffer length to a large byte number
      
      set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number
      
      SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour
      
      source file.sql --Import your sql dump file
      
      SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete!
      

      【讨论】:

        猜你喜欢
        • 2020-10-25
        • 1970-01-01
        • 1970-01-01
        • 2021-08-10
        • 2015-06-06
        • 1970-01-01
        • 1970-01-01
        • 2013-08-25
        • 2013-10-03
        相关资源
        最近更新 更多