Записать объект java.io.InputStream в файл smb - PullRequest
0 голосов
/ 11 июля 2019

Один из моих классов Java Utility (утилита шифрования PGP) читает файл java.io.File (в зашифрованном формате) и преобразует его в объект java.io.InputStream (в основном дешифрует файл и преобразует его в java.io.InputStream). объект в конце метода) Я не могу изменить служебный класс, так как он используется в приложении. Мне нужно записать этот объект в файл smb на общий путь, который требует аутентификации по паролю. Как я могу преобразовать java.io.InputStream в файл smb и написать ему общий путь

1) Возможно ли использование jcifs? 2) Если возможно, у нас есть пример программы?

1 Ответ

1 голос
/ 11 июля 2019

Нет разницы в процессе записи для случая двух обычных File объектов.

final SmbFile destFile = ... //Depends on how you init SmbFile object

InputStream inputStream = ... // your InputStream with data
OutputStream outputStream = null;
try {
    outputStream = destFile.getOutputStream();

    byte[] buf = new byte[STREAM_BUFFER_SIZE];
    int read;
    while ((read = inputStream.read(buf)) > -1) {
        outputStream.write(buf, 0, read);
    }
    outputStream.flush();
} finally {
    if (inputStream != null)
        inputStream.close();
    if (outputStream != null)
        outputStream.close();
}
...