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



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();
}
}  
    }

你可能感兴趣的:(java读取文件路径,上传文件到linux服务器!)