$$$问个文件传输有关问题
$$$问个文件传输问题如何将本地图片文件,转成字节码流后然后再 转成对象 用于 网络传输呢?[解决办法]javax
$$$问个文件传输问题
如何将本地图片文件,转成字节码流后
然后再 转成对象 用于 网络传输呢?
[解决办法]
javax.imageio.*;
里面的方法也许有用:
BufferedImage bImage = new BufferedImage(image.getWidth(), image
.getHeight(), BufferedImage.TYPE_INT_ARGB);
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
ImageIO.write(bImage, format, out);
} catch (IOException e) {
e.printStackTrace();
}
byte [] b = out.toByteArray();
b传过去,再转成图像,用FileOutpurStream 就好啦
FileOutputStream fos = new FileOutputStream(file);
for (int i = 0; i < b.length; i++) {
fos.write(b[i]);
}
fos.flush();
[解决办法]
为什么不用字节流直接传输?
如果把字节流转成对象,然后再网络传输,就是串行化操作了
这个对象应该实现串行化接口
关于串行化
[解决办法]
看看
[解决办法]
将文件转成字节流就可以传输了,不用转成对象再传输,这样会更麻烦。
使用文件IO操作,就可以将文件读取成字节流(字节数组)。
传输的话,要看楼主要用什么方式传了。
[解决办法]
[解决办法]小文件,直接读成字节数组,进行传输就行。
楼主说,你那里已经有线程的传输框架,不知道具体传输对象,使用的是什么类。
如果使用的是JDK中的ObjectOutputSteam的实现类对象的话,write方法就可以传输字节数组。
在Java当中,JDK所提供的文件类,没有实现Serializable接口,是不能够序列化的,
所以不能直接进行对象传输。但文件可以读取成字节数组,进行传输。
小文件,可以一次性读取到内存中,然后直接调用相关方法就可以传输。
大文件,要想办法实现文件的随机访问与传输。
如果楼主的框架不是使用的ObjectOutputStream进行传输,那就请楼主找找,有没有类似传输字节数组的方法。如果没有,楼主可以把字节数组封装的一个实现Serializable接口的类里面,这样,传输这个对象到服务端就可以了。
[解决办法]不知道lz是怎么像你说的传图像的
[解决办法]28楼的代码,其实还是可以优化一下的。比如,File对象,可以获得文件的大小(所占字节数)。
然后根据文件大小,创建一个byte[],然后直接把数据读到数组里就可以了,没必要创建那个out缓冲区。
[解决办法]帮顶
[解决办法]我是不是再揿一下别的门钉?”令狐申怯生生地说,目光从三个伙伴身上掠过。他还是称之为“门钉”,实际上,他已确凿无疑地弄明白了:这是放映全息电影的一个个按钮。
[解决办法][解决办法]学习!
[解决办法]路过,我不太懂
[解决办法]友情帮顶
[解决办法]java socket可以完成
[解决办法].
[解决办法]看来我理解错意思啦
[解决办法]很好,学习了,谢谢各位
[解决办法]很好,学习了,谢谢各位
------解决方案--------------------
我是新手随便看看,谢谢楼主
[解决办法]别用java的序列化,效率太差,直接用socket stream方式写出去就行了
[解决办法][解决办法]socket加stream
[解决办法]好长,都没看大懂
[解决办法]楼主的问题还没有解决么?
不知道现在还存在什么问题。
我今天编了一下午的代码,基于另一个帖子的问题,写了一个具有传输文件功能代码。
代码比较长,希望有经历的朋友可以多给我提提意见和建议。
连接是:使用ObjectOutputStream或ObjectInputStream传输文件
[解决办法]学习了
[解决办法]jf