redis 如何将文件(包含内容)以对象的形式或者二进制流的形式保存(百度出来的全是错的-只保存了文件的路劲)。。。
各位大神 你们好啊 在下 请教一个简单的问题 redis 如何将文件(包含内容)以对象的形式或者二进制流的形式保存(百度出来的全是错的-只保存了文件的路劲)。。。
示例如下:
@Component
public class DownloadComponent {
@Autowired
private RedisComponent redisComponent;
/**
* 序列化方法
* @param value
* @param htmlFile
* @return
*/
public byte[] object2Bytes(Object value,File htmlFile) {
if (value == null)
return null;
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream outputStream;
try {
outputStream = new ObjectOutputStream(arrayOutputStream);
outputStream.writeObject(value);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
arrayOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
if(htmlFile==null){
}else{
htmlFile.deleteOnExit();//程序退出时删除临时文件
}
}
return arrayOutputStream.toByteArray();
}
/**
* 反序列化方法
* @param bytes
* @return
*/
public Object byte2Object(byte[] bytes) {
if (bytes == null || bytes.length == 0)
return null;
try {
ObjectInputStream inputStream;
inputStream = new ObjectInputStream(new ByteArrayInputStream(bytes));
Object obj = inputStream.readObject();
return obj;
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
/**
* 保存文件方法
* @param key
* @param path
* @param htmlFile
*/
public void setFile(String key,String path,File htmlFile){
File fr = null;
try {
fr = new File(path);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//redis.set(key.getBytes(), object2Bytes(fr));
redisComponent.save(key, object2Bytes(fr,htmlFile),1800);
}
/**
* 读取文件对象方法
* @param key
* @return
*/
public Object getFile(String key){
Object find = redisComponent.findByKey(key);
return find;
}
}
但是 里面保存文件的方法 最终中是把文件的路劲 以对象的形式保存了。。。。 我需要保存文件 内容-----关于文件的全部保存 我应该如何做呢? 请大神指点。。。