Как скопировать файл из системы Linux в систему Windows, используя программу Java? - PullRequest
1 голос
/ 15 октября 2010

Как скопировать файл из системы Linux в систему Windows, используя программу Java? Спасибо за вашу помощь. Я хочу скопировать файл из linux: /inet/apps/test.java в Windows System1: C: \ apps \ test Мы можем использовать следующую программу для копирования

    public static void copyFiles(String fromFile, String toFile ){
     FileInputStream from = null;
        FileOutputStream to = null;
        try {
          from = new FileInputStream(fromFile);
          to = new FileOutputStream(toFile);
          byte[] buffer = new byte[4096];
          int bytesRead;

          while ((bytesRead = from.read(buffer)) != -1)
            to.write(buffer, 0, bytesRead); // write
        }catch(Exception e){e.printStackTrace();}
        finally {
          if (from != null)
            try { from.close();} catch (IOException e) {}
          if (to != null)try {to.close();} catch (IOException e) {}
        }     
 }

Эта программа работает на Linux. так что fromFile = /inet/apps/test. Каким будет путь toFile. Если я просто использую C:\apps\test, то как приложение распознает цель как System1.

Ответы [ 3 ]

2 голосов
/ 15 октября 2010

Java не делает различий между файлами Windows и Linux.Таким образом, если у вас есть доступ к обеим файловым системам на компьютере, на котором работает ваша Java-программа, вы можете просто копировать их.

1 голос
/ 15 октября 2010
  1. Я думаю, что вы спрашиваете о некоторых свойства для программы.

    В этом случае свойства должны быть настраиваемым Вы можете сохранить файл свойств в том же каталог как ваша Java-программа или в путь к классу.

  2. Файл свойств может выглядеть следующим образом:

        windows.filepath = C:\user\somefile.txt
        unix.filepath = /inet/apps/test.txt
    

    Так что, когда вы портируете среды. Вы не нужно менять свойства.

    Если вы спрашиваете о том, как портировать test.java для Windows, затем просто скопируйте файл в каталог JAVA_HOME на окна, и тогда вы готовы идти.

  3. Или Если у вас есть система двойной загрузки. Вы можете получить доступ к вашему диску Linux из windows , но не другой наоборот.

0 голосов
/ 15 октября 2010

Если система Unix имеет кросс-монтированную файловую систему Windows (например, через общий ресурс SMB), вы сможете найти путь Unix, который соответствует месту назначения Windows, и скопировать, как вы делаете в настоящее время.

В противном случае вам потребуется использовать какой-либо протокол передачи файлов для копирования файла.

Нет волшебства Java, которое позволяло бы волшебным образом записывать файлы на другой компьютер.Операционная система должна быть настроена так, чтобы это происходило.

СЛЕДУЙТЕ ЗА - вы спросили:

Я не думал о магии.Поэтому мой вопрос был, как скопировать файл из Windows в Linux.Обычно мы делаем FTP на Unix без монтирования или используем FileZilla, чтобы передача происходила.Здесь, если мы хотим сделать то же самое, хотя java, то как это сделать?

Я не знаю, как я могу сказать это по-другому, чтобы вы поняли, но здесь идет речь:

Ваш выбор в Java в основном одинаков:

  • Вы можете использовать FTP.Например, на целевом компьютере превратите путь к исходному файлу в URL «ftp: // ...» и используйте java.net.URL.connect() для его извлечения.Вероятно, существуют сторонние библиотеки Java, которые можно использовать для «передачи» файла на FTP-сервер.
  • Если ваша ОС настроена с перекрестным монтированием файловых систем, вы можете сделать обычное копирование файла,так же, как и ваш код.
  • Вы можете использовать java.lang.System.exec(...) для запуска какой-либо специальной утилиты командной строки Windows для копирования.

Во всех случаях вам необходимо выяснитькак сопоставить пути между мирами Windows и Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...