前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java读取文件路径,上传文件到linux服务器!

java读取文件路径,上传文件到linux服务器!

作者头像
用户7886150
修改2020-12-02 14:28:02
8.8K0
修改2020-12-02 14:28:02
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: 如何运行不同目录中的Java类文件

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.SocketException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import org.apache.commons.net.ftp.FTPClient;

import org.apache.commons.net.ftp.FTPReply;  

public class Test {  

public static void main(String[] args) {

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

// 这个写法是固定的

// 2.获取数据库连接:通过java的驱动管理器

// url-数据库地址:user -用户名:password-密码 Connection为连接 DriverManager驱动管理器

Connection conn = DriverManager.getConnection(

        "jdbc:oracle:thin:@172.16.3.5:1521:orcl",

        " sys as SYSDBA", "2017oracle2017");

System.out.println("---------------------数据库连接成功-------------------");

// 3.获得操作数据库声明

Statement st = conn.createStatement();// Statement声明 createStatement创建声明

// 5.查询数据

// ResultSet数据结果集

ResultSet rs = st.executeQuery("select t.uuid,  t.file_path, t.file_name , t.ip_address from SHUJURUKUQINGKUANG.SYS_LOAD_FILE t where (t.file_suff = 'FRM' OR t.file_suff = 'frm' or t.file_suff = 'MYD' OR       t.file_suff = 'myd' or t.file_suff = 'MYI' OR t.file_suff = 'myi' )and t.ip_address = '172.16.3.229'  and t.file_same = '首次出现' and t.状态 is null    order by t.file_size desc");

// next() 判断是否存在下一条记录,如果存在就移动指针到下一条记录上

while (rs.next()){

// 读取数据

String FILE_PATH =rs.getString("FILE_PATH");

//int columnIndex =0;

//rs.getArray(columnIndex);

System.out.println("读取文件路径:"+FILE_PATH);

        String file_name=rs.getString("file_name");

           //读取uuid判断uuid是否想同如果相同更改状态已入库

        String UUID =rs.getString("UUID");

st.executeUpdate("update SHUJURUKUQINGKUANG.SYS_LOAD_FILE T  SET T.状态= '已入库' ,T.处理日期 = TO_DATE(SYSDATE),T.服务器名 = '172.16.3.219',T.用户= 'ruku',T.录入人= 'yc'  WHERE T.UUID='"+UUID+"'  AND T.IP_ADDRESS = '172.16.3.229' AND T.FILE_SAME = '首次出现'  ");

        //需要复制的目标文件或目标文件夹  

String pathname =(FILE_PATH);

       File file = new File(pathname);  

      //复制到的位置  

        String topathname =(file_name);

        File toFile = new File(topathname);  

        //创建ftp客户端  

        FTPClient ftpClient = new FTPClient();  

        ftpClient.setControlEncoding("utf-8");  

        String hostname = "172.16.3.219";  

        int port = 21;  

        String username = "root";  

        String password = "123456";  

        try {  

            //链接ftp服务器  

            ftpClient.connect(hostname, port);  

            //登录ftp  

            ftpClient.login(username, password);  

            int  reply = ftpClient.getReplyCode();    

            System.out.println(reply+"---Linux连接成功---");  

            //如果reply返回230就算成功了,如果返回530密码用户名错误或当前用户无权限下面有详细的解释。  

            if (!FTPReply.isPositiveCompletion(reply)) {    

                    ftpClient.disconnect();    

                    return ;    

                }    

            //服务器之间传输需要加下列语句

            ftpClient.enterLocalPassiveMode();

                ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);  

                ftpClient.changeWorkingDirectory("/home/mysql/ruku");

                String remoteFileName = ""+toFile;  

                InputStream input = new FileInputStream(file);   

                ftpClient.storeFile(remoteFileName, input);//文件你若是不指定就会上传到root目录下  

                System.out.println("---文件复制完成---");

input.close();    

                ftpClient.logout();    

        } catch (SocketException e) {  

            e.printStackTrace();  

        } catch (IOException e) {  

            e.printStackTrace();  

        }finally   

        {    

            if (ftpClient.isConnected())  

            {    

                try   

                {    

                    ftpClient.disconnect();    

                } catch (IOException ioe)   

                {    

                    ioe.printStackTrace();  

                }   

            }   

        }

}

// 释放资源 目的:在Windows中每运行一个程序,系统资源就会减少。

// 有的程序会消耗大量的系统资源,即使把程序关闭,在内存中还是有一些没用的DLL文件在运行,这样就使得系统的运行速度下降。

rs.close();

st.close();

// 关闭数据库

conn.close();

System.out.println("------------------------------数据库链接已关闭----------------------");

} catch (ClassNotFoundException | SQLException e) {

e.printStackTrace();

}

}  

    }

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档