在ftp位置创建0字节文件

时间:2011-09-26 11:54:08

标签: java io

以下是我的java函数在ftp位置写一个csv文件。文件被创建到ftp位置但是文件大小是0字节而文件是空的。当我被困住时,请帮忙

public int WriteFileToFtp(String FileName, String FileData) {

    //get these details for the version??
    //??

    FTPClient ftp=    new FTPClient();
    try {
        InputStream is = new ByteArrayInputStream(FileData.getBytes("ISO-8859-1"));
        ftp.connect(ftpIP);
        boolean isConnection  = ftp.login(userName,password);         
        if(!isConnection){
            logger.error("Connection failed");
            return -1;
        }
        ftp.enterLocalActiveMode();                                                         
        ftp.setFileType(FTP.BINARY_FILE_TYPE);//setting fileType  
        //?? go to directory using the circle code
        if(ftpDirectoryToBeUpdate!=null && ftpDirectoryToBeUpdate.trim().length()>0)
        {
            logger.error("Changing directory for write="+ftpDirectoryToBeUpdate+" lcd="+ftp.printWorkingDirectory());
            ftp.changeWorkingDirectory(ftpDirectoryToBeUpdate);
            logger.error("Changed directory for write="+ftpDirectoryToBeUpdate+" lcd="+ftp.printWorkingDirectory());
        }else
        {
            logger.error("Changed directory for write failed lcd="+ftp.printWorkingDirectory());
            logger.error("DirectoryToReadFrom="+ftpDirectoryToBeUpdate);
        }

        ftp.storeFile(FileName,is) ;
        logger.error(ftp.getReplyString());
        is.close();

        if(ftp.isConnected())
            ftp.disconnect();
    } catch (SocketException e) {
        //logger.error(LoggerKeyWord.ERROR_ALERT + " FTP WRITE ERROR");
        logger.error(e,e);
        e.printStackTrace();
        return -1;
    } catch (IOException e) {
    //  logger.error(LoggerKeyWord.ERROR_ALERT + " FTP WRITE ERROR");
        logger.error(e,e);
        e.printStackTrace();
        return -1;
    }
    try {
        if(ftp.isConnected())
            ftp.disconnect();
    } catch (IOException e) {
        logger.error (e,e);
        e.printStackTrace();
        return -1;
    }
    return 1;
}

1 个答案:

答案 0 :(得分:2)

您是否尝试在保存文件之前关闭输入流