热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

java读取ftp中TXT文件的案例

这篇文章主要介绍了java读取ftp中TXT文件的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

最近在开发关于java读取ftp中TXT文件,其中有些坑踩了一下,再次做个记录

1、读取文件时我会根据文件名称去生成数据库表,oracle数据库对于表名的长度是有限制的,最多30个字符

2、对于多个文件的ftp的读取,每次获取文件后再次回去文件的流会为空,即在循环中多次根据ftp获取文件的流

当出现这种情况时,需要在循环时每次开启和关闭ftp的链接即可解决,否则在第二次获取的时候inputsteam为null

3、读取txt文件时,如果文件中包含中文,进行读取时可能会出现乱码,这是可设置读取的字符集为UTF-8,如果不行,再试试

GB2312

4、java读取TXT文件:

InputStreamReader reader = new InputStreamReader(is, "GB2312");
BufferedReader br = new BufferedReader(reader);
String lineTxt = null; //每行数据
int rowNum = 0;
while ((lineTxt = br.readLine()) != null) {}

补充知识:Java实现从FTP获取文件下载到本地,并读取文件中的内容的成功方法

我就废话不多说了,大家还是直接看代码吧~

package com.aof.web.servlet;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import javax.jws.WebService;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
@WebService(endpointInterface="com.aof.web.servlet.QualityComplainServices")
public class QualityComplainServicesImpl implements QualityComplainServices {
 //ftp对象
  private FTPClient ftp;
  //需要连接到的ftp端的ip
  private String ip = "10.46.249.7";
  //连接端口,默认21
  private int port = 21;
  //要连接到的ftp端的名字
  private String name = "DKEDI";
  //要连接到的ftp端的对应得密码
  private String pwd = "P@ssw0rd";  
  
 //调用此方法,输入对应得ip,端口,要连接到的ftp端的名字,要连接到的ftp端的对应得密码。连接到ftp对象,并验证登录进入fto
  public boolean ftp1() {
    ftp = new FTPClient();
    try {
//     ftp.connect(ip, port);
     if(!ftp.isConnected()){
     ftp.connect(ip, port);
   }
      System.out.println(ftp.login(name, pwd));
//     ftp.setCharset(Charset.forName("UTF-8"));
      ftp.setControlEncoding("UTF-8");
      return true;
    } catch (IOException e) {
      e.printStackTrace();
      return true;
    }
    
  }
  
  public void disconnect() throws Exception {
 if (ftp.isConnected()) {
  ftp.disconnect();
 }
 }
  
 // 下载文件到本地
 public boolean download(FTPFile file) throws Exception {
  boolean result = true;
  // 本地文件路径
  File f = new File("E:\\crmFiles\\");
  if (!f.exists()) {
  f.getParentFile().mkdirs();
  }
  long lRemoteSize = file.getSize();
  try {// 下载过的不在下载了
  OutputStream out = new FileOutputStream(f);
  if (f.length() >= lRemoteSize) {
   System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~本地已经存在,下载中止");
   out.flush();
   out.close();
  }
  boolean iss = ftp.retrieveFile(file.getName(), out);
  System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~下载成功\r\n");
  out.close();
  } catch (Exception ex) {
  ex.printStackTrace();
  System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~下载失败\r\n");
  return false;
  }
  return result;
 }
 
 private InputStreamReader read;
 private BufferedReader reader;
 
 private String preRead(String filepath) throws Exception {
 File file = new File(filepath);
 String ordertype = null;
 if (file.isFile() && file.exists()) {
  try {
  read = new InputStreamReader(new FileInputStream(file), "GBK");
  reader = new BufferedReader(read);
  StringBuffer FileCOntent= new StringBuffer();
  String temp = null;
  while ((temp = reader.readLine()) != null) {
   FileContent.append(temp);
  }
  System.out.println("订单内容为------------------>>>>> "+FileContent+" <<<<<------------------");
  } catch (FileNotFoundException e) {
  System.out.println("!!!!!!!!!!!!!!!!!没有找到合适的订单信息!!!!!!!!!!!!!!!");
  e.printStackTrace();
  } finally {
  reader.close();
  read.close();
//  file.delete();
  }
 }
 return ordertype;
 }
  
  public void gmRead(String remote) throws Exception {
   boolean downloadResult = false;
 try {
  ftp.changeWorkingDirectory(remote);
  System.out.println("远程路径为*************************"+remote);
  FTPFile[] files = ftp.listFiles(remote); // 通过路径得到文件
  System.out.println("文件数量为*************************"+files.length);
  for (int i = 0; i 

以上这篇java读取ftp中TXT文件的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.xmlbeans.SchemaType 类的 getBaseEnumType() 方法,提供了多个代码示例,并解释了其在不同场景下的使用方法。 ... [详细]
  • 本文介绍如何在Java项目中使用Log4j库进行日志记录。我们将详细说明Log4j库的引入、配置及简单应用,帮助开发者快速上手。 ... [详细]
  • 本文详细介绍了如何在ECharts中使用线性渐变色,通过echarts.graphic.LinearGradient方法实现。文章不仅提供了完整的代码示例,还解释了各个参数的具体含义及其应用场景。 ... [详细]
  • 本文详细介绍了如何解决MyBatis中常见的BindingException错误,提供了多种排查和修复方法,确保Mapper接口与XML文件的正确配置。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 探讨了小型企业在构建安全网络和软件时所面临的挑战和机遇。本文介绍了如何通过合理的方法和工具,确保小型企业能够有效提升其软件的安全性,从而保护客户数据并增强市场竞争力。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • HBase运维工具全解析
    本文深入探讨了HBase常用的运维工具,详细介绍了每种工具的功能、使用场景及操作示例。对于HBase的开发人员和运维工程师来说,这些工具是日常管理和故障排查的重要手段。 ... [详细]
author-avatar
热情的海浪公主
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有