Показаны сообщения с ярлыком Java. Показать все сообщения
Показаны сообщения с ярлыком Java. Показать все сообщения

среда, 5 августа 2015 г.

XML to Single Element/XML to String

Could you pls tell me in detail about how to achieve One whole xml into one string element. I am new to all this and have not used xslt or java mapping before.

Answer:

u can use XSLT mapping for inserting the complete input xml file in to string on output.

This is the sample code:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<input_tag>
<xsl:text disable-output-escaping="yes"><![CDATA[><![CDATA[]]></xsl:text>
<xsl:copy-of select="output_tag/string_name"/>
<xsl:text disable-output-escaping="yes"><![CDATA[]]]]></xsl:text>
<xsl:text disable-output-escaping="yes"><![CDATA[>]]></xsl:text>
</input_tag>
</xsl:template>
</xsl:stylesheet>.

or u can use java mapping also
below is the sample code:
//package com.xi.javamapping;
import java.io.DataInputStream;
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;

import com.sap.aii.mapping.api.StreamTransformation;
import com.sap.aii.mapping.api.StreamTransformationException;

public class XMLToString implements StreamTransformation {
     public void setParameter(Map arg0) {}
     public void execute(InputStream arg0, OutputStream arg1)
          throws StreamTransformationException {
          try {
               DataInputStream dataInputStream = new DataInputStream(arg0);
               StringBuffer sbr = new StringBuffer();
               String str = null;
               while ((str = dataInputStream.readUTF()) != null) {
                    String str1 = str.trim();
                    sbr.append(str1);
                    String string = new String(sbr);
                    byte[] b = string.getBytes();
                    arg1.write(b);
               }
          } catch (IOException e) {
               e.printStackTrace();
          }
     }
      
      
}

Source


 

среда, 29 января 2014 г.

public static double max

public static double max(double... values)
{
 double largest = Double.MIN_VALUE;
 for (double v: values) if (v>largest) largest = v;
 return largest;
}

понедельник, 27 января 2014 г.

Заполнить массив в виде песочных часов

http://www.cyberforum.ru/java-j2se/thread1082835.html#post5700960
создать двумерный квадратный массив и заполнить его таким образом:

11111
01110
00100
01110
11111


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
public class Matrix2 {
    public static void main(String[] args) {
 
        final int MAX = 3;
 
        int[][] arr = new int[MAX][MAX];
 
        for (int i = 0; i < arr.length /2 + 1 ; i++) {
            for (int j =  i; j < arr.length - i; j++) {
                arr[i][j] = 1;
                arr[arr.length - i - 1][j] = 1;
            }
        }
        for (int []row:arr){
            for (int value: row){
                System.out.print(" " + value + " ");
            }
            System.out.println();
        }
    }
}

среда, 25 декабря 2013 г.

Красота-то какая


import java.io.Console;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.ListIterator;
import java.util.Scanner;
 
public class ConsoleApplication {
 
    private static final ArrayList<Integer> numArray = new ArrayList<Integer>(5);
    private static File outputFile;
 
    private static Console console;
    private static Scanner scanner;
 
    private static final String taskStr = "Вычислить среднее арифмитическое чисел вводимых с клавиатуры (использовать Arraylist).\nРезультат записать в файл.\n\n",
            fileRequestText = "Файл с результатом программы. Введите имя файла: ",
            requestCycleInfo = "Введите чило, после ввода нажмите Enter.\n"
            + "+++Для вывода на экран результата введите show.\n"
            + "+++Для выхода и записи результата в файл введите exit.\n",
            requestCycleText = "Ввод: ";
 
    public static void main(String args[]) {
        System.out.println("Задание: Вычислить среднее арифмитическое чисел вводимых с клавиатуры (использовать Arraylist).\nРезультат записать в файл.\n");
 
        if ((console = System.console()) != null) {
            System.out.println(" - System.console - ");
            outputFile = new File(console.readLine(fileRequestText));
            System.out.println(requestCycleInfo);
            while (true) {
                doLogic(console.readLine(requestCycleText).toLowerCase());
            }
        } else {
            scanner = new Scanner(System.in);
            System.out.println(" - Scanner (System.in) - ");
            System.out.print(fileRequestText);
            outputFile = new File(scanner.nextLine());
            System.out.println(requestCycleInfo);
            while (true) {
                System.out.print(requestCycleText);
                doLogic(scanner.nextLine().toLowerCase());
            }
        }
    }
 
    // Если JDK\JRE >= 7
    private static void doLogic(String in) {
        switch (in) {
            case "exit":
                save();
                System.out.println("Работа программы завершена. Выход.");
                System.exit(0);
                break;
            case "show":
                System.out.println(getResult());
                break;
            default:
                try {
                    numArray.add(Integer.parseInt(in));
                } catch (NumberFormatException ex) {
                    System.out.println("\nНеверный формат числа, операция проигнорирована!\n");
                }
                break;
        }
    }
 
    // Если JDK\JRE < 7
//    private static void doLogic(String in) {
//        if (in.equals("exit")) {
//            save();
//            System.out.println("Работа программы завершена. Выход.");
//            System.exit(0);
//        } else if (in.equals("show")) {
//            System.out.println(getResult());
//        } else {
//            try {
//                numArray.add(Integer.parseInt(in));
//            } catch (NumberFormatException ex) {
//                System.out.println("\nНеверный формат числа, операция проигнорирована!\n");
//            }
//        }
//    }
    private static void save() {
        try {
            try (FileOutputStream fos = new FileOutputStream(outputFile)) {
                fos.write(getResult().getBytes("UTF-8"));
                fos.flush();
            }
        } catch (FileNotFoundException ex) {
            System.err.println("Файл " + outputFile.getAbsolutePath() + " не найден!");
        } catch (UnsupportedEncodingException ex) {
            System.err.println("Кодировка UTF-8 не поддерживается!");
        } catch (IOException ex) {
            System.err.println("IOException: " + ex.getLocalizedMessage());
        }
    }
 
    private static String getResult() {
        ListIterator<Integer> listIterator = numArray.listIterator();
        Integer summ = 0;
 
        StringBuilder builder = new StringBuilder();
 
        builder.append("Cреднее арифмитическое чисел: \r\n");
 
        while (listIterator.hasNext()) {
            Integer nextVal = listIterator.next();
            summ += nextVal;
            builder.append("    ").append(nextVal).append("\r\n");
 
        }
 
        builder.append("\r\nРавно ").append(summ / numArray.size()).append(",").append(summ % numArray.size());
        return builder.toString();
    }
}

вторник, 10 декабря 2013 г.

Encoding and decoding Base64


*Entschlüsselt einen BinaryString mit Base64

CALL FUNCTION 'SSFC_BASE64_DECODE'
EXPORTING
b64data                  = xstring
*      b64leng                  = gs_base64data-b64leng
*      b_check                  = ga_base64data-b_check
IMPORTING
bindata                  = string"ga_base64data-bindata
EXCEPTIONS
ssf_krn_error            = 1
ssf_krn_noop             = 2
ssf_krn_nomemory         = 3
ssf_krn_opinv            = 4
ssf_krn_input_data_error = 5
ssf_krn_invalid_par      = 6
ssf_krn_invalid_parlen   = 7
OTHERS                   = 8.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

*Verschlüsselt einen BinaryString mit Base64

*  DATA: la_xstring TYPE xstring,
*        la_string TYPE string.

CALL FUNCTION 'SSFC_BASE64_ENCODE'
EXPORTING
bindata                  = xstring
*      binleng                  = gs_base64data-b64leng
IMPORTING
b64data                  = string
EXCEPTIONS
ssf_krn_error            = 1
ssf_krn_noop             = 2
ssf_krn_nomemory         = 3
ssf_krn_opinv            = 4
ssf_krn_input_data_error = 5
ssf_krn_invalid_par      = 6
ssf_krn_invalid_parlen   = 7
OTHERS                   = 8.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. 

 
 
import org.apache.commons.codec.binary.Base64;

/**
 * Java program to encode and decode String in Java using Base64 encoding algorithm
 * @author http://javarevisited.blogspot.com
 */
public class Base64EncodingExample{

    public static void main(String args[]) throws IOException {
        String orig = "original String before base64 encoding in Java";

        //encoding  byte array into base 64
        byte[] encoded = Base64.encodeBase64(orig.getBytes());     
      
        System.out.println("Original String: " + orig );
        System.out.println("Base64 Encoded String : " + new String(encoded));
      
        //decoding byte array into base64
        byte[] decoded = Base64.decodeBase64(encoded);      
        System.out.println("Base 64 Decoded  String : " + new String(decoded));

    }
}


Output:
Original String: original String before base64 encoding in Java
Base64 Encoded String : b3JpZ2luYWwgU3RyaW5nIGJlZm9yZSBiYXNlNjQgZW5jb2RpbmcgaW4gSmF2YQ==
Base 64 Decoded  String : original String before base64 encoding in Java

Read more: http://javarevisited.blogspot.com/2012/02/how-to-encode-decode-string-in-java.html#ixzz2n4iBQBTN

среда, 20 марта 2013 г.

список литературы по Java

Для новичка:
Хорстманн К.С., Корнелл Г. - Java 2. Том 1. Основы
Хорстманн К.С., Корнелл Г. - Java 2. Том 2. Тонкости программирования 
Брюс Эккель - Философия Java - не стоит читать перед Хорстманом
(русский перевод старого издания) http://javatutor.net/books/tiej/


"Java .ПРОМЫШЛЕННОЕ ПРОГРАММИРОВАНИЕ Практическое пособие И.Н. Блинов, В.С. Романчик"
Для начинающего, на русском, довольно подробно рассматриваются все базовые вещи
и в том числе часть EE технологий с азов, у кого проблемы с английским - лучший выбор
!!! (большая часть вопросов с этого форума там разжёвана очень подробно)


видеокурсы и другое от Игоря Мирончика http://mironchik.com/?p=450

http://habrahabr.ru/post/67763/

Маст хев всем:
Джошуа Блох Java. Эффективное программирование 2002 - типичные проблемы и их решения
Joshua Bloch, "Effective Java (2nd Edition)" 2008 
Чистый код. Создание, анализ и рефакторинг - прекрасное дополнение к предыдущей книге, чтобы отучиться писать быдлокод.
Паттерны проектирования - эта книга в представлении не нуждается. Лучший учебник по паттернам. Все примеры на Джаве.

Мультипоток:

"JavaConcurrency InPractice" BrianGöetz, TimPeierls, JoshuaBloch, JosephBowbeer, DavidHolmes, DougLea (Англ.)- ну в общем вы сами по авторам видите - да? 
"Taming Java Threads" - 2000 by Allen I. Holub - всё про низкоуровневую синхронизацию и проблемы с ней связанные, также приводятся альтернативные (от java.util.concurrent) варианты реализации локов , кью и тд. (Автор не любит кемел-кейс, но довольно хорошо объясняет)

Остальное: 
Кен Арнольд, Джеймс Гослинг. Язык программирования Java - книжка от создателей языка
Г. Шилдт - полный справочник по java SE6. - как книга не очень, но зато как перевод javadoc очень неплохо
"Java. Полное руководство" Герберт Шилдт 2012 - чуть актуальнее предыдущей
Java в примерах.СПРАВОЧНИК Дэвид Флэнаган 
Объектно-ориентированное программирование с примерами применения.3-е изд.(2008).Гради Буч
Самоучитель Java с примерами и программами (+ CD-ROM) - есть претензии к оформлению листингов прог. Автор учит быдлокодить. Но именно как самоучитель - книга очень хорошая и полезная. Всё подробно и доступно.
Pro Java 7 NIO 2 - как ускорить файловые операции
"Структуры данных и алгоритмы Java" Р. Лафоре
Кэти Сьерра и Берт Бейтс "Изучаем Java"

Если кому неоходимо на немецком, то могу посоветовать Christian Ullenboom "Java ist auch eine Insel".

Хорошие статьи для начинающих:

По Java Hibernate:

http://javaxblog.ru/article/java-hibernate-1/
http://javaxblog.ru/article/java-hibernate-2/
http://javaxblog.ru/article/java-hibernate-3/
http://javaxblog.ru/article/java-hibernate-4/

По Java Spring Framework:

http://javaxblog.ru/article/java-spring-1/
http://javaxblog.ru/article/java-spring-2/

По Java Struts 2:

http://javaxblog.ru/article/java-struts-1/
http://javaxblog.ru/article/java-struts-2/
http://javaxblog.ru/article/java-struts-3/
http://javaxblog.ru/article/java-struts-4/

По Java Maven:

http://javaxblog.ru/article/java-maven-1/
http://javaxblog.ru/article/java-maven-2/

По Java Ant:

http://javaxblog.ru/article/java-ant-1/

По Java JUnit:

http://javaxblog.ru/article/java-junit-1/

По Java JDBC:

http://javaxblog.ru/article/java-jdbc-1/

По Java JSP, Tomcat:

http://javaxblog.ru/article/java-jsp-1/
http://javaxblog.ru/article/java-jsp-2/

По Java Spring AOP:

http://javaxblog.ru/article/java-spring-aop-1/
http://javaxblog.ru/article/java-spring-aop-2/
http://javaxblog.ru/article/java-spring-aop-3/

По Oracle ADF на русском:
http://www.cyberforum.ru/redirector.php?url=aHR0cCUzQSUyRiUyRmRlbmlzb3Jsb3ZtdXNpYy5ydSUyRmFydGljbGVzJTJGamF2YSUyRkpEZXZlbG9wZXJfMTFnX1IyX0RldmVsb3BpbmdfUmljaF9XZWJfQXBwbGljYXRpb25zX1dpdGhfT3JhY2xlX0FERl9SdXMlMkZQYXJ0MS5odG0=

понедельник, 25 июня 2012 г.

Split a string using String.split()

Разбить строку по количеству символов.
 split a long string into into fixed-length parts


String testString = "012345678901234567890";
  System.out.println(java.util.Arrays.toString(
    testString.split("(?<=\\G.{3})")
  ));

  // output : [012, 345, 678, 901, 234, 567, 890]

понедельник, 13 февраля 2012 г.

Java. Get Last Day of month

// input var1 - current date in format yyyyMMDD

int date = Integer.parseInt(var1);
Calendar cal;
int day = date % 100;
int month = (date/100) % 100;
int year = date / 10000;
cal = Calendar.getInstance();
try
{
int lastDate = cal.getActualMaximum(Calendar.DATE);
cal.set(Calendar.DATE, lastDate); // это лишнее в принципе...


date = year * 10000 + (month * 100) + lastDate;
}
catch (Exception e)
{
}
return (""+date);

четверг, 12 января 2012 г.

VBA, Java, Excel

1. Script for calling macro

http://pastie.org/pastes/3171814
save it as calling.vbs


in java you can call it as Runtime.getRuntime().exec("cmd /c start calling.vbs");

----------//---------------

2. for close excel:

ActiveWorkbook.Save
Application.DisplayAlerts = False
Application.Quit

3. Автоматический запуск макроса при открытии Excel.

Sub Auto_Open()
   Call <macros>
End Sub



вторник, 1 ноября 2011 г.

Few examples how to remove the ?xml version=\"1.0\" * encoding=\"UTF-8\"? from the input message

  /*
     * The following is to remove the <?xml version=\"1.0\"
     * encoding=\"UTF-8\"?> from the input message payload
     * sb - StringBuffer with input message payload
     */
  
  Newpayload = sb.toString();
    int len = Newpayload.indexOf(">");
    Newpayload = Newpayload.substring(len + 1);


  -------------------------------------------------------------------

    /*
     * The following is to remove the <?xml version=\"1.0\"
     * encoding=\"UTF-8\"?> from the RESULT_STRING
     */
RESULT_STRING = RESULT_STRING.replace('?','D');
RESULT_STRING = RESULT_STRING.replaceAll("<Dxml version=\"1.0\" encoding=\"UTF-8\"D>","");

  ------------------------------------------------------------------


      // convert InputStream to String
      byte[] bbuf = new byte[in.available()];
      int bblen = in.read(bbuf);

String inputConverted = new String(bbuf,"UTF-8");
inputConverted = inputConverted.replaceAll("<\\?xml version=\"1\\.0\" encoding=\"UTF-8\"\\?>","");

понедельник, 1 августа 2011 г.

Java. Найти файл, удалить файл.

Задачи, алгоритм


- Найти файлы с расширением .xml в  директории А
- удалить эти файлы
- найти файлы в директории Б
- скопировать файлы из директории Б в директорию А
- скопировать список файлов в файл files.txt

В этом посте описаны первые 2 шага.

Что ж, алгоритм понятен, переходим к кодингу. Лезем в гугль и вбиваем там "Java найти файлы в директории". Запрос лучше конечно без кавычек, иначе гугль будет искать точное совпадение, а нам это не с руки.

Сразу получаем результат - http://www.javatalks.ru/sutra23249.php

Этот код выдает список всех файлов, а нам надо только xml. Недолго думая, я решил просто выяснить расширение у полученных файлов.

Гугль выдает отличные результаты - http://blog.dimmduh.com/2011/05/java_19.html

Ну и в конце надо пройтись по списку и удалить найденные файлы. Для удаления сойдет код отсюда - http://www.roseindia.net/java/beginners/DeleteFile.shtml


В итоге получаем следующий код:

public class someclass {


private static void deletefile(String file){
File f1 = new File(file);
boolean success = f1.delete();
if (!success){
System.out.println("Deletion failed.");
System.exit(0);
}else{
System.out.println("File deleted.");
  }
}


public static String getFileExtention(String filename){
int dotPos = filename.lastIndexOf(".") + 1;
return filename.substring(dotPos);
}

public static void main(String[] args) {


String list[] = new File("C:\\files\\").list();
for(int i = 0; i < list.length; i++)
 {

   String fileext = getFileExtention(list[i]);
 
   if (fileext.equalsIgnoreCase("xml")) // тогда удалить файл
    deletefile("C:\\files\\"+list[i]);
 
 }

}
}

PS. Сначала я пытался сделать проверку fileext == "xml", но это не прокатило. Со строками лучше использовать функции equals.

Для копирования файлов я использовал метод copyfile отсюда - http://www.roseindia.net/java/beginners/CopyFile.shtml

А запись в файл - http://www.rte1.ru/softsamples/Java_WriteToFile.html

вторник, 19 июля 2011 г.

Convert a OutputStream to a JAVA String

http://www.m0interactive.com/archives/2006/11/30/convert_a_outputstream_to_a_java_string.html

Этот класс может потребоваться когда надо в метод передать OutputStream, но вернуть вы хотите String.

Но, попробовав этот класс, вместо него я использовал ByteArrayOutputStream byte1=new ByteArrayOutputStream();  который прокатывает за OutputStream как миленький.

А класс из ссылки возвращает bytes с которыми фиг знает что делать ломаку вроде меня))

четверг, 14 июля 2011 г.

ArrayList в Java - это вещь!

Все преимущества массива и перечисления в одном флаконе.

add+set+get+contains - и вот оно, щастье)))

понедельник, 11 июля 2011 г.

FTPCOnnection.java

http://www.nsftools.com/tips/FTPConnection.java

Это жесть...

На локальном фтп все работает, как часы. А вот к фтп на сервере не хочет цепляться.

Мне надо получить список файлов в папке и всё... С локального фтп все элементарно


FTPConnection connection = new FTPConnection();

try {
   if (connection.connect("host")) {
       if (connection.login("user","pass")) {
        connection.changeDirectory("/dir/");
String Params = "*.*";
String ListFiles = connection.listFiles();
OutputStream os = out.getOutputPayload().getOutputStream();
os.write(ListFiles.getBytes("UTF-8"));
       }
}
} catch (Exception e) {
throw new StreamTransformationException(
"Exception in JAVA mapping ): "
+ e.getMessage());
}

Java. Работа с FTP. FTP Client, используя стандартные средства

http://www.javabeat.net/tips/36-file-upload-and-download-using-java.html

Я взял этот пример.
Upload с него работает на ура. А вот с Download пришлось повозиться.
При передаче последнего параметра как File, метод упорно отказывается заполнять файл содержимым.
Немного переделал, чтобы передавать методу сразу BufferedOutputStream
----------------------///---------------------------

Пример использования:


import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.FileInputStream;
public static void main(String[] args) {
UploadDownload upload = new UploadDownload();


File file_to_upload = new File("C:\\test.txt");
try
{
upload.upload("127.0.0.1","user","user","/upload/test.txt",file_to_upload);
}
catch (IOException ioe)
{
  ioe.printStackTrace();
}

try {  
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\test.txt" ));  
upload.download("127.0.0.1","user","user","upload/test.txt",bos);  
}  
catch (IOException ioe) { ioe.printStackTrace(); }
}

воскресенье, 10 июля 2011 г.

Java. Работа с FTP. FTP Client

Задача.

Написать на Java программу, которая работает с FTP


- Upload File (загрузить файл на ФТП)
- Download File (скачать файл с ФТП)
- Get List of Files (получить список файлов на ФТП)
- Delete File (удалить файл с ФТП)

Примеры классов для этого - http://www.kodejava.org/examples/355.html

Для работы требуется org.apache.commons.net.ftp.FTPClient
Скачать можно тут - http://www.java2s.com/Code/Jar/ABC/Downloadcommonsnetjar.htm

Код класса:



import org.apache.commons.net.ftp.FTPClient;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.FileInputStream;

public class FTP_Client {

/**
* Функция для получения списка файлов и папок в папке Folder
* @param FTPADDR, адрес ФТП сервера
* @param user, логин к фтп
* @param Password, пароль к фтп
* @param Folder, папка где будет производиться поиск
* @return String[] RESULT, список файлов/папок
*/
public static String[] GetList(String FTPADDR, String user, String Password,String Folder)
{
String[] RESULT;

RESULT = null;

FTPClient client = new FTPClient();
try {
client.connect(FTPADDR);
client.login(user, Password);
client.changeWorkingDirectory(Folder);
RESULT = client.listNames();
client.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}


return RESULT;
}

/**
 * Upload a file to a FTP server
  * @param FTPADDR, адрес ФТП сервера
  * @param user, логин к фтп
  * @param Password, пароль к фтп
 * @param PathOnFtp, путь к файлу на фтп - например /upload/touch.dat
 * @param FilenameOnLocalMachine, путь к файлу на локальной машине - например C:/somefile.txt
 */
public static void UploadFileOnFtp(String FTPADDR, String user, String Password,String PathOnFtp, String FilenameOnLocalMachine)
{
FTPClient client = new FTPClient();

FileInputStream fis = null;

try {
client.connect(FTPADDR);
client.login(user, Password);

//client.changeWorkingDirectory("upload");

// Create an InputStream of the file to be uploaded

String filename = FilenameOnLocalMachine;
fis = new FileInputStream(filename);


// Store file to server
//
client.storeFile(PathOnFtp, fis);
client.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}

/**
* Download File from FTP
 * @param FTPADDR, адрес ФТП сервера
 * @param user, логин к фтп
 * @param Password, пароль к фтп
* @param FullPathToPutFile - полный путь к файлу на локальной машине, куда будем его сохранять
* @param FilenameOnFTP - имя файла на фтп (функция ищет файл в папке /upload/)
*/
public static void DownloadFileFromFTP(String FTPADDR, String user, String Password,String FullPathToPutFile, String FilenameOnFTP)
{

FTPClient client = new FTPClient();
FileOutputStream fos = null;

try {
client.connect(FTPADDR);
client.login(user, Password);


//   The remote filename to be downloaded.

String filename = FullPathToPutFile;
fos = new FileOutputStream(filename);


//   Download file from FTP server

client.retrieveFile("/upload/"+FilenameOnFTP, fos);
//

} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null) {
fos.close();
}
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}

}

/**
* Delete File From FTP
* @param FTPADDR, адрес ФТП сервера
* @param user, логин к фтп
* @param Password, пароль к фтп
* @param Filename, путь к файлу (например /upload/touch.dat)
*/

public static void DeleteFileOnFtp(String FTPADDR, String user, String Password,String Filename)
{
FTPClient client = new FTPClient();
try {
client.connect(FTPADDR);
client.login(user, Password);

//
// Delete file on the FTP server. When the FTP delete complete
// it returns true.
//
String filename = Filename;
boolean deleted = client.deleteFile(filename);
if (deleted) {
System.out.println("File deleted...");
}

client.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}



public static void main(String[] args) {
// Использование

DownloadFileFromFTP("127.0.0.1","user","user","C:/touch.dat","touch.dat");
UploadFileOnFtp("127.0.0.1","user","user","/upload/touch.dat","C:/1.xml");

String[] RESULT = GetList("127.0.0.1","user","user","upload");
for (int i=0;i<RESULT.length;i++)
{
System.out.println("Name = " + RESULT[i]);
}

      DeleteFileOnFtp("127.0.0.1","user","user","/upload/touch.dat");


}
}