黑马程序员技术交流社区
标题:
关于IO流的异常天开问题,不知道能不能实现?
[打印本页]
作者:
wkz_crystal
时间:
2015-4-13 12:40
标题:
关于IO流的异常天开问题,不知道能不能实现?
能不能把一个图片文件中的数据读写到一个txt文件中(大家能够做到)呵呵,肯定是一大片乱码,怎样又从这个txt文件中读取数据,转化成为一张图片呢?而且保证两张图片是一样的?仔细想想是不符合逻辑的,因为txt中的数据已经失真了,但是还是想听听大家的想法?
作者:
sisel
时间:
2015-4-13 16:12
没问题的 全程(读,写,以及中间不要修改)不要用CharSet编解码,用字节流
作者:
waylent
时间:
2015-4-13 16:30
能,所有的文件,最终都是以字节形式存到硬盘上的,所以只要不用字符流,文件类型是随便的。数据也不会失真,因为二进制数据是一样的。
作者:
wkz_crystal
时间:
2015-4-15 00:23
本帖最后由 wkz_crystal 于 2015-4-15 00:28 编辑
试了一下,的确很OK的!通过最基本的字节流就能完成了……
//注意:我只是随便写了一个,仅仅是演示用的,没有专业处理异常问题:
import java.io.*;
class Test
{
public static void main(String[] args) throws IOException
{
read();
write();
}
//这是把图片文件读写到txt文件中
public static void read() throws IOException
{
FileInputStream fis=new FileInputStream("c:"+File.separator+"car.jpg");
FileOutputStream pos=new FileOutputStream("c:"+File.separator+"data.txt");
byte[] buf=new byte[1024];
int num=0;
while ((num=fis.read(buf))!=-1)
{
pos.write(buf,0,num);
}
pos.close();
fis.close();
}
//再通过读取txt文件中内容,写在d盘中,还原成为图片文件
public static void write() throws IOException
{
FileInputStream fi=new FileInputStream("c:"+File.separator+"data.txt");
FileOutputStream po=new FileOutputStream("d:"+File.separator+"car.jpg");
byte[] b=new byte[1024];
int num=0;
while ((num=fi.read(b))!=-1)
{
po.write(b,0,num);
}
po.close();
fi.close();
}
}
复制代码
作者:
wkz_crystal
时间:
2015-4-15 00:30
sisel 发表于 2015-4-13 16:12
没问题的 全程(读,写,以及中间不要修改)不要用CharSet编解码,用字节流 ...
谢谢,知道了,我之前想得太多了,今天试了一下,一切OK的!我还以为数据写到了txt文件中就失真了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2