| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1169 人关注过本帖
标题:关于文件的输入输出
只看楼主 加入收藏
macrossyun
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-7-28
收藏
 问题点数:0 回复次数:8 
关于文件的输入输出
对于文件的复制总不是用的很好,请问:怎么将图像文件进行复制,用字节流应该怎么写,我用writeByte复制的文件不对吧?
搜索更多相关主题的帖子: 文件 输出 输入 
2008-10-28 13:58
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:0 
用fileOutputStream写到文件试试
2008-10-28 17:53
xiao_ou0725
Rank: 2
来 自:江苏苏州
等 级:论坛游民
帖 子:59
专家分:20
注 册:2008-10-24
收藏
得分:0 
InputStream 和OutputStream 设计成字节流类。Reader 和Writer 为字符流设计。字节
流类和字符流类形成分离的层次结构。一般说来,处理字符或字符串时应使用字符流类,
处理字节或二进制对象时应用字节流类。
2008-10-28 20:11
macrossyun
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-7-28
收藏
得分:0 
恩,用FileOutputStream是可以,但是如果我用DataOutputStream为什么会复制出一个无法打开的文件呢?是否还要将Data流再进行转换?

比如这样:
public static void main(String[] args) throws IOException{
        // TODO 自动生成方法存根
        FileInputStream file=new FileInputStream("C:\\image.bmp");
        DataInputStream input=new DataInputStream(file);
        
        DataOutputStream output=new DataOutputStream(new FileOutputStream("C:\\image_copy.bmp"));
        
        byte code;
        while((code=input.readByte())!=-1)
            output.write(code);
        
        
        input.close();
        output.close();
    }

如果将code变量定义为Int型,则会有eof异常,如果定义为byte则不会,但是个有损文件,无法可视文件,该怎么正确地使用DataInputStream/DataOutputStream

[[it] 本帖最后由 macrossyun 于 2008-10-29 09:03 编辑 [/it]]

初出茅庐
2008-10-29 08:42
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 
可以是用javax.imageio里面的类ImageWriter和ImageReader来实现。
2008-10-29 09:12
macrossyun
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-7-28
收藏
得分:0 
恩,能否给个简单的例子呢?我以前没用过这个,不是很上手

[[it] 本帖最后由 macrossyun 于 2008-10-29 09:30 编辑 [/it]]

初出茅庐
2008-10-29 09:19
benluobo
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-11-6
收藏
得分:0 
用我这个可以


import *;
public class imagereadtest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
  try{  File f1= new File("F:\\javacode\\1.bmp");
   FileInputStream fis=new FileInputStream(f1);
   DataInputStream dis=new DataInputStream(fis);
   
   File f2 =new File("F:\\javacode\\2.bmp");
   FileOutputStream fos=new FileOutputStream(f2);
   DataOutputStream dos=new DataOutputStream(fos);

   int  code;
   while ((code=dis.readUnsignedByte())!=-1)
   { dos.write(code);}
     dis.close();
     dos.close();
  } catch (IOException e){}
  
  }
2008-11-07 09:26
benluobo
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-11-6
收藏
得分:0 
不过这是讲十六进制转换为INT 再进行存储的
2008-11-07 09:31
Sieben7
Rank: 2
等 级:论坛游民
帖 子:116
专家分:20
注 册:2007-4-16
收藏
得分:0 
这个……不就是序列化么
2008-11-07 10:42
快速回复:关于文件的输入输出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018405 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved