Как мне вернуть файл в определенное место на Java? - PullRequest
2 голосов
/ 12 января 2012

В настоящее время я использую функцию внешней библиотеки, которая возвращает объект File.Это прекрасно работает для создания файла в месте по умолчанию, но для размещения одновременных пользователей мне нужно, чтобы файл находился в определенной папке.Не имея возможности изменить функцию, которая создает файл, есть ли функция File, которая позволяет мне указать, куда он будет идти?

Ответы [ 6 ]

1 голос
/ 12 января 2012

Полагаю, вам нужно создать новый File объект в нужном месте, а затем использовать FileInputStream для чтения в исходном File и FileOutputStream для записи в нужное место.

И если я правильно помню, File.renameTo не всегда работает лучше всего (см. Javadoc ).

1 голос
/ 12 января 2012

Вы можете использовать renameTo(File destination) в File API, чтобы переименовать файл, хранящий его в другом абстрактном пути.

например:

import java.io.File;

public class MainClass {

  public static void main(String args[]) {

    try {

      File oldFile = new File("/usr/bin/temp/");

      File newFile = new File("/usr/bin/hunter/temp");

      boolean result = oldFile.renameTo(newFile);

      System.out.println(result);
    } 
    catch (Exception e) 
    {
      e.printStackTrace();
    }

Также обратите внимание, что API говорит, что это не всегда гарантирует успех, поэтому вам нужно проверять возвращаемое значение вызова метода каждый раз, когда вы используете этот метод.

1 голос
/ 12 января 2012

Сначала получите этот файл, затем переместите его в указанное место, используя File.renameTo().

0 голосов
/ 12 января 2012

Объект java.io.File - это просто абстрактное представление пути к файлу или каталогу, т. Е. Это просто имя и местоположение файла, а не фактический файл. Не зная, какую библиотеку вы используете, я не знаю, создал ли он этот файл и просто сообщает вам, где она находится (я думаю, что это вероятно), или она сообщает , куда вам обращаться создать файл. Но вполне вероятно, что ответ, который вы ищете, заключается не в манипулировании этим объектом File, а в том, чтобы что-то сделать с библиотекой по-другому, чтобы определить, куда пойдет файл.

0 голосов
/ 12 января 2012

Нет, вам нужно что-то сделать, чтобы изменить место, где он создает файл, переместить возвращаемый файл, установить рабочий каталог и т. Д. Последние два могут по-прежнему представлять проблемы, в зависимости от того, как настроено приложение .

Если у вас есть некоторое понимание метода, вы можете использовать АОП.

0 голосов
/ 12 января 2012

Вы можете изменить рабочий каталог, если только Java позволит вам это сделать.Таким образом, если вы получаете уже созданный файл, вы все равно можете переместить его с помощью File.renameTo () .

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