日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java ftp 读取 txt文件_java通过ftp方式读取文件,并解析入库

發(fā)布時間:2024/4/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java ftp 读取 txt文件_java通过ftp方式读取文件,并解析入库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

對于自己是個總結,下次使用的時候直接copy,要注意的地方是ftp訪問文件的方式,訪問的是ftp用戶的home目錄,而不是從絕對路徑訪問。

private final static String DELETEUSER = "delete from customermanager_user where cmanagerno in ";

private final static String QUERYUSER = "select cmanagerno from customermanager_user where cmanagerno in ";

private final static String INSERTUSER = "insert into customermanager_user(cmanagerno, cmanagercity, cmanagercontry, cmanagername, cmanagercontact, cmanagerstatus) values(?,?,?,?,?,?)";

private CustomManagerJobDAO managerJobDAO;

public CustomManagerJobDAO getManagerJobDAO() {

return managerJobDAO;

}

public void setManagerJobDAO(CustomManagerJobDAO managerJobDAO) {

this.managerJobDAO = managerJobDAO;

}

/**

* customermanager_group 表增刪查

*/

private final static String DELETEGROUP = "delete from customermanager_group where id in ";

private final static String QUERYGROUP = "select id from customermanager_group where id in ";

private final static String INSERTGROUP = "insert into customermanager_group(id, cmgroupno, cmgroupcity, cmgroupcontry, cmgroupcustomername, cmgroupcorno, cmgroupcoradd, cmgroupcustomertype, cmgroupiffirst, cmgroupcustomerlevel, cmgroupcontact, cmgroupslalevel, cmgroupaddress, cmgroupsatus) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

private static Integer file1length = Integer.valueOf(6);

private static Integer file2length = Integer.valueOf(14);

private final static String REMOVEFLAG = "1";

private final static String UPDATEFLAG = "0";

private List removekeylist = new LinkedList();

private List insertkeylist = new LinkedList();

private List insertlist = new LinkedList();

static {

String file1 = StaticMethod.nullObject2String(XmlManage.getFile(

"/config/customanager-ftp-boss.xml").getProperty("file1length"));

if (file1 != null && file1.length() >= 0) {

file1length = Integer.valueOf(file1);

}

String file2 = StaticMethod.nullObject2String(XmlManage.getFile(

"/config/customanager-ftp-boss.xml").getProperty("file2length"));

if (file1 != null && file2.length() >= 0) {

file2length = Integer.valueOf(file2);

}

}

public void parseData(String filepath) {

int table1size = file1length.intValue();

int table2size = file2length.intValue();

int count = 1;

try {

long begintime = System.currentTimeMillis();

URL url = new URL(filepath);

URLConnection urlconn = url.openConnection();

BufferedReader br = new BufferedReader(new InputStreamReader(urlconn.getInputStream()));

String line = null;

String keyflag = null; // 移除和刪除標記

while ((line = br.readLine()) != null) {

count++;

String[] fileds = line.split("\\|");

if (table1size == fileds.length) {

keyflag = fileds[table1size - 1];

if (REMOVEFLAG.equals(keyflag)) {

removekeylist.add(fileds[0]);

} else if (UPDATEFLAG.equals(keyflag)) {

insertkeylist.add(fileds[0]);

fileds = changeAreaNametoId(fileds);

insertlist.add(fileds);// 再把所有數(shù)組給存起來

}

} else if (table2size == fileds.length) {

keyflag = fileds[table2size - 1];

if (REMOVEFLAG.equals(keyflag)) {

removekeylist.add(fileds[0]);

} else if (UPDATEFLAG.equals(keyflag)) {

insertkeylist.add(fileds[0]);

fileds = changeAreaNametoId(fileds);

insertlist.add(fileds);// 再把所有數(shù)組給存起來

}

}

if (count % 5000 == 0) {

queryAndDelete(removekeylist, insertlist); // 先查一把!然后再刪

queryAndInsert(insertkeylist, insertlist);// 先查一把!然后再新增

removekeylist.clear();

insertkeylist.clear();

insertlist.clear();

}

queryAndDelete(removekeylist, insertlist); // 先查一把!然后再刪

queryAndInsert(insertkeylist, insertlist);// 先查一把!然后再新增

removekeylist.clear();

insertkeylist.clear();

insertlist.clear();

}

br.close();

long endtime = System.currentTimeMillis();

System.out.println((endtime - begintime) / 3600);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

public void getFileByFtp() {

String ftpserver = StaticMethod.nullObject2String(XmlManage.getFile("/config/customanager-ftp-boss.xml").getProperty("ftpserver"));

String userLogin = StaticMethod.nullObject2String(XmlManage.getFile("/config/customanager-ftp-boss.xml").getProperty("ftpuserLogin"));

String pwdLogin = StaticMethod.nullObject2String(XmlManage.getFile("/config/customanager-ftp-boss.xml").getProperty("ftppwdLogin"));

String serverPath = StaticMethod.nullObject2String(XmlManage.getFile("/config/customanager-ftp-boss.xml").getProperty("ftpserverPath"));

try {

// ftp服務器上下載每天的工單流水文件

String retMessage = connectToFtpServer(ftpserver, userLogin,

pwdLogin);

if (!retMessage.equals("connect success")) {

System.out.println("下載時文件時無法和FTP服務器連接");

}

String filename = StaticMethod.getYYYYMMDD(StaticMethod

.getLocalString(-1));

System.out.println("filename===" + filename);

String filepath1 = "ftp://" + userLogin + ":" + pwdLogin + "@"

+ ftpserver + serverPath + filename + "_001.txt";

String filepath2 = "ftp://" + userLogin + ":" + pwdLogin + "@"

+ ftpserver + serverPath + filename + "_002.txt";

System.out.println("path===" + filepath1);

URL url = new URL(filepath1);

URLConnection urlconn = url.openConnection();

BufferedReader br = new BufferedReader(new InputStreamReader(

urlconn.getInputStream()));

String line = null;

while ((line = br.readLine()) != null) {

System.out.println("line======" + line);

}

parseData(filepath1);

parseData(filepath2);

br.close();

closeFtpConnect();

} catch (MalformedURLException e1) {

e1.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 把地市名稱換成id

*

* @param keylist

*/

public String[] changeAreaNametoId(String[] records) {

if (file1length.intValue() == records.length) { // 數(shù)組長度為6,為第一張表

records[1] = getAreaid(records[1]);

} else if (file2length.intValue() == records.length) {

records[2] = getAreaid(records[2]);

}

return records;

}

/**

* 對數(shù)據(jù)進行查詢,如果存在則刪除

*

* @param keylist

*/

public void queryAndDelete(List keylist, List datalist) {

String sql = null;

String[] records = null;

if (datalist != null && datalist.size() > 0) {

records = (String[]) datalist.get(0);

}

List retlist = null;

try {

if (file1length.intValue() == records.length) { // 數(shù)組長度為6,為第一張表

sql = getExecuteSql(QUERYUSER, keylist);

retlist = this.getManagerJobDAO().getKeyList(sql); // 根據(jù)key把庫中已經存在的記錄查出來。

if (retlist != null && retlist.size() > 0) {

sql = getExecuteSql(DELETEUSER, retlist); // 組裝成需要的sql

System.out.println("delete id from customermanager_user where flag = 1:===" + retlist);

this.getManagerJobDAO().delteRecord(sql);// 根據(jù)key把庫中已經存在的刪除

}

} else if (file2length.intValue() == records.length) {

sql = getExecuteSql(QUERYGROUP, keylist);

retlist = this.getManagerJobDAO().getKeyList(sql); // 根據(jù)key把庫中已經存在的記錄查出來。

if (retlist != null && retlist.size() > 0) {

sql = getExecuteSql(DELETEGROUP, retlist);

System.out.println("delete id from customermanager_group where flag = 1 ===="+ sql);

this.getManagerJobDAO().delteRecord(sql);

}

}

} catch (SQLException e) {

e.printStackTrace();

}

}

public void queryAndInsert(List keylist, List datalist) {

String sql = null;

String[] records = null;

if (datalist != null && datalist.size() > 0) {

records = (String[]) datalist.get(0);

}

List retlist = new ArrayList();

try {

if (file1length.intValue() == records.length && retlist != null) { // 數(shù)組長度為6,為第一張表

sql = getExecuteSql(QUERYUSER, keylist);

retlist = this.getManagerJobDAO().getKeyList(sql); // 根據(jù)key把庫中已經存在的記錄查出來。

if (retlist.size() == 0) { // 如果沒有查到一個,則全部入庫

this.getManagerJobDAO().insertTable1(INSERTUSER, datalist); // 把所有字段全部入庫

} else {

sql = getExecuteSql(DELETEUSER, retlist); // 如果存在重復,則更新和新增分開操作

System.out.println("delete id from customermanager_user where flag = 1 ===="+ retlist);

this.getManagerJobDAO().delteRecord(sql);// 根據(jù)key把庫中已經存在的刪除

System.out.println("insert * into customermanager_user where flag = 0 ===="+ datalist);

this.getManagerJobDAO().insertTable1(INSERTUSER, datalist); // 把所有字段全部入庫

}

} else if (file2length.intValue() == records.length && retlist != null) {

sql = getExecuteSql(QUERYGROUP, keylist);

retlist = this.getManagerJobDAO().getKeyList(sql);

if (retlist.size() == 0) {

this.getManagerJobDAO().insertTable2(INSERTGROUP, datalist);

} else {

sql = getExecuteSql(DELETEGROUP, retlist);

System.out.println("delete id from customermanager_group where flag = 1 ===="+ retlist);

this.getManagerJobDAO().delteRecord(sql);

System.out.println("insert * into customermanager_group where flag = 0 ===="+ datalist);

this.getManagerJobDAO().insertTable2(INSERTGROUP, datalist);

}

}

} catch (SQLException e) {

e.printStackTrace();

}

}

public static String getExecuteSql(final String querySql, List retList) {

String record = null;

String keys = null;

StringBuffer sqlsb = new StringBuffer();

for (int i = 0; i < retList.size(); i++) {

keys = StaticMethod.nullObject2String(retList.get(i));

sqlsb.append("'").append(keys).append("',");

}

record = sqlsb.toString();

String sqlwhere = record.substring(0, record.lastIndexOf(","));

return querySql + "(" + sqlwhere + ")";

}

public Logger logger = Logger.getLogger(this.getClass());

FtpClient ftpClient=null;

/*

* 獲取FTP服務

*/

public String connectServer( String ip, int port, String user,

String password, String path) {

String returnResult = "true";

try {

ftpClient = new FtpClient();

ftpClient.openServer(ip, port);

ftpClient.login(user, password);

if (path.length() != 0)

ftpClient.cd(path);

ftpClient.binary();

} catch (IOException ex) {

returnResult = "false";

}

return returnResult;

}

private String connectToFtpServer(String ftpserver, String userLogin,

String pwdLogin) {

FtpClient fc = new FtpClient();

if ((ftpserver == null) || (ftpserver.equals("")))

return "FTP服務器名設置不正確!";

try {

fc.openServer(ftpserver);

fc.login(userLogin, pwdLogin);

fc.binary();

} catch (FtpLoginException e) {

return "沒有與FTP服務器連接的權限,或用戶名密碼設置不正確!";

} catch (IOException e) {

return "與FTP服務器連接失敗!";

} catch (SecurityException e) {

return "沒有權限與FTP服務器連接";

}

return "connect success";

}

/*

* 關閉FTP

*/

public void closeFtpConnect() {

try {

ftpClient.closeServer();

} catch (IOException ex) {

System.out.println("關閉時出錯======:"+ex.getMessage());

}

}

}

總結

以上是生活随笔為你收集整理的java ftp 读取 txt文件_java通过ftp方式读取文件,并解析入库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。