一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java讀取ftp中TXT文件的案例

java讀取ftp中TXT文件的案例

2020-09-24 00:54zhang06105586 Java教程

這篇文章主要介紹了java讀取ftp中TXT文件的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

最近在開發(fā)關(guān)于java讀取ftp中TXT文件,其中有些坑踩了一下,再次做個(gè)記錄

1、讀取文件時(shí)我會(huì)根據(jù)文件名稱去生成數(shù)據(jù)庫表,oracle數(shù)據(jù)庫對(duì)于表名的長度是有限制的,最多30個(gè)字符

2、對(duì)于多個(gè)文件的ftp的讀取,每次獲取文件后再次回去文件的流會(huì)為空,即在循環(huán)中多次根據(jù)ftp獲取文件的流

java讀取ftp中TXT文件的案例

當(dāng)出現(xiàn)這種情況時(shí),需要在循環(huán)時(shí)每次開啟和關(guān)閉ftp的鏈接即可解決,否則在第二次獲取的時(shí)候inputsteam為null

3、讀取txt文件時(shí),如果文件中包含中文,進(jìn)行讀取時(shí)可能會(huì)出現(xiàn)亂碼,這是可設(shè)置讀取的字符集為UTF-8,如果不行,再試試

GB2312

4、java讀取TXT文件:

?
1
2
3
4
5
InputStreamReader reader = new InputStreamReader(is, "GB2312");
BufferedReader br = new BufferedReader(reader);
String lineTxt = null; //每行數(shù)據(jù)
int rowNum = 0;
while ((lineTxt = br.readLine()) != null) {}

補(bǔ)充知識(shí):Java實(shí)現(xiàn)從FTP獲取文件下載到本地,并讀取文件中的內(nèi)容的成功方法

我就廢話不多說了,大家還是直接看代碼吧~

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
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對(duì)象
  private FTPClient ftp;
  //需要連接到的ftp端的ip
  private String ip = "10.46.249.7";
  //連接端口,默認(rèn)21
  private int port = 21;
  //要連接到的ftp端的名字
  private String name = "DKEDI";
  //要連接到的ftp端的對(duì)應(yīng)得密碼
  private String pwd = "P@ssw0rd"
  
 //調(diào)用此方法,輸入對(duì)應(yīng)得ip,端口,要連接到的ftp端的名字,要連接到的ftp端的對(duì)應(yīng)得密碼。連接到ftp對(duì)象,并驗(yàn)證登錄進(jìn)入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("~~~~~~~~~~~~~~~~~~~~~~~~本地已經(jīng)存在,下載中止");
   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("訂單內(nèi)容為------------------>>>>> "+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("遠(yuǎn)程路徑為*************************"+remote);
  FTPFile[] files = ftp.listFiles(remote); // 通過路徑得到文件
  System.out.println("文件數(shù)量為*************************"+files.length);
  for (int i = 0; i < files.length; i++) {
  FTPFile file = files[i];
  if (file.isFile()) {
   downloadResult = this.download(file);// 下載文件 到本地讀取路徑
   if (downloadResult) {
   String ordertype = this.preRead("E:\\crmFiles\\");
   }
   /*//讀取文件內(nèi)容,將內(nèi)容存數(shù)據(jù)庫
   InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
   BufferedReader br = new BufferedReader(isr);
   String lineTxt = null;
   while ((lineTxt = br.readLine()) != null) {
   lineTxt+=lineTxt;
   }
   System.out.println(lineTxt);
   br.close();*/
  }else{
   System.out.println("************* 文件不存在 ************");
  }
  }
 } catch (Exception e) {
  e.printStackTrace();
 }
 }
  
 @Override
 public String threeDAndEightDReports(String orderNum, String FTPUrl, String FileType) {
 //抱怨單號(hào)、FTP地址、3D/8D文件類型
 System.out.println("1-------------"+orderNum);
 System.out.println("2-------------"+FTPUrl);
 System.out.println("3-------------"+FileType);
 if(null != orderNum && null != FTPUrl && null != FileType){
  //連接FTP
  boolean flag = this.ftp1();
  if(flag){
  try {
   //獲取文件、解析文件內(nèi)容,進(jìn)庫操作
   this.gmRead(FTPUrl);
   // 關(guān)閉連接
   this.disconnect();
  } catch (Exception e) {
   e.printStackTrace();
  }
  }else{
  System.out.println("!!!!!!!!!!!!!!!!!FTP連接失敗!!!!!!!!!!!!!!!!!");
  }
  
  return "success";
 }else{
  return "fail";
 }
 }
 
 public static void main(String[] args) {
 QualityComplainServicesImpl q = new QualityComplainServicesImpl();
 q.threeDAndEightDReports("001","/CRMINTERFACE","3D");
 }
}

以上這篇java讀取ftp中TXT文件的案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/zhang06105586/article/details/105410803

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费369看片入口 | 国产第一福利 | 男人天堂网www | 国产区香蕉精品系列在线观看不卡 | 2012年中文字幕在线看 | 久久久精品成人免费看 | 日本免费三片在线播放 | 饭冈加奈子在线播放观看 | 亚洲国产资源 | 亚洲精品6久久久久中文字幕 | 欧美黑人换爱交换乱理伦片 | 免费在线视频观看 | 日韩国产欧美精品综合二区 | 欧美日韩高清一区 | 鬼惨笑小说 | 变态 调教 视频 国产九色 | 毛片一区二区三区提莫影院 | 国产无限免费观看黄网站 | 黑人群性xxx | 亚洲第一免费播放区 | 秀婷程仪公欲息肉婷在线观看 | 网友自拍偷拍 | 二次元美女内裤凹陷太深 | 99久久综合 | www日本在线观看 | 动漫jk美女被爆羞羞漫画 | 国产美女亚洲精品久久久久久 | 国产香蕉国产精品偷在线观看 | 免费日本在线视频 | yy6080欧美三级理论 | kayden kross喷水 | 农夫69小说小雨与农村老太 | 久久re视频这里精品一本到99 | 美女隐私部位视频网站 | 动漫美女隐私尿口图片 | 天天舔天天干天天操 | 小早川怜子息梦精在线播放 | 秋葵污视频 | 国产伦精品一区二区三区免 | 亚洲精品精品一区 | 女攻双性 |