我的一个Java Utility类(PGP Encryption实用程序)读取java.io.File(采用加密格式)并将其转换为java.io.InputStream对象(基本上将文件解密并转换为java.io.InputStream方法末尾的对象) 由于无法在整个应用程序中使用该实用程序类,因此无法对其进行修改。 我需要将此对象写入smb文件到需要密码验证的共享路径。如何将java.io.InputStream转换为smb文件并写入共享路径
1)是否可以使用jcifs? 2)如果可能,我们有任何示例程序吗?
答案 0 :(得分:1)
对于两个常见的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();
}
答案 1 :(得分:0)
InputStream fileInputStream // already filled
File newFile = diskShare.openFile(fullFileName, EnumSet.of(AccessMask.FILE_WRITE_DATA), null, SMB2ShareAccess.ALL, SMB2CreateDisposition.FILE_OVERWRITE_IF, null);
OutputStream oStream = newFile.getOutputStream();
oStream.write(fileInputStream.readAllBytes());
oStream.close();