Как создать файл на Linux-сервере с помощью Java

В настоящее время я перевел свой сервер на Linux из Windows, и у меня возникла проблема в моем веб-сервисе Java. В этом я создаю файл на диске Windows D. теперь я хочу создать это и на сервере Linux. но я не знаю, как указать путь и как создать (поскольку у него нет дисков в качестве окон). поэтому нужна помощь для этого. Я публикую свой код Java ниже.

private static void receiveImg(String pic_bitmap) {
    FileOutputStream fos;
    try {

        fos = new FileOutputStream("D:\\AllImages\\ProfilePic\\Test.png");
        byte byteArray[] = Base64.decodeBase64(pic_bitmap);
        fos.write(byteArray);
        fos.close();

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Спасибо за любую помощь.


person minfo    schedule 24.12.2018    source источник
comment
Linux не использует буквы дисков Windows, где в системе Linux вы хотите хранить свои файлы. Повторяю, не может быть на диске D.   -  person Elliott Frisch    schedule 24.12.2018
comment
@Elliott Frisch спасибо за предложение. Можете ли вы сказать, как мы можем использовать URL-адрес или путь с номером порта в пути к файлу?   -  person minfo    schedule 24.12.2018
comment
Возможный дубликат Как читать файл в Windows и Linux с Java, Пути к файлам для Windows и Linux и т. д.   -  person jww    schedule 25.12.2018


Ответы (2)


Это должно работать. Дополнительные соображения см. ниже.

private static void receiveImg(String pic_bitmap) {
    FileOutputStream fos;
    try {

        fos = new FileOutputStream("/tmp/test.png");
        byte byteArray[] = Base64.decodeBase64(pic_bitmap);
        fos.write(byteArray);
        fos.close();

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Обратите внимание, что вам нужно знать структуру Linux-сервера, чтобы сохранить его в более подходящем месте. Если вы можете подключиться к серверу по ssh, вы можете запустить команду «ls /», чтобы увидеть структуру корневой папки. Если вы не развертываете код самостоятельно, вам может понадобиться сотрудник DevOps, который поможет вам понять структуру папок на целевом сервере, на котором вы развертываете код.

person David    schedule 24.12.2018
comment
Спасибо за помощь. Можем ли мы использовать URL-адрес или путь с номером порта в пути к файлу? - person minfo; 24.12.2018
comment
Не с этим кодом. Примечание: ваш код немного устарел. dzone.com/articles/. Вместо этого используйте Files.newOutputStream. Что касается удаленного сервера, вам понадобится нечто вроде этого: stackoverflow.com/questions/40590372/ - person David; 24.12.2018

это может помочь вам. Он не сохраняет изображение, но это не должно иметь значения.

public void saveImage(String filename) { // filename ( path: linux ): /directory/filename 
    if(filename!=null){
        try {
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filename));
            oos.writeObject('objectToWrite');
            oos.flush();
            oos.close();
        } catch (FileNotFoundException e) {
            System.out.println(e.getMessage());
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }           
    }else{
        System.out.println("NullPointerException");
    }
}
person Bernd    schedule 24.12.2018