CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

关于字节流的若干问题

楼主slqit2002()2006-03-01 19:03:08 在 Java / J2SE / 基础类 提问

package   application;  
  import   java.io.*;                                        
  public   class   HelloApplication   {  
            public   static   void   main(String   args[]){  
  1 int         count;  
  2 byte       input[]   =   new   byte[256];  
   
  3 DataInputStream   stdin   =   new   DataInputStream(System.in);       //   从键盘读取输入  
  4 BufferedInputStream   bufin   =   new   BufferedInputStream(stdin);     //   创建输入缓冲区  
   
  5   DataOutputStream   stdout   =   new   DataOutputStream(System.out);     //从屏幕输出    
  6 BufferedOutputStream   bufout   =   new   BufferedOutputStream(stdout);//创建输出缓冲区  
  7 PrintStream   p   =   new   PrintStream(System.out);                         //从屏幕输出  
  try   {  
  8       p.print("请输入字符串,结束请按Enter...\n"   +   "==>   ");  
  9                       count   =   bufin.read(input);  
  10                     p.println("读入字符数:   "   +   count);  
  11                     p.print("输入的字符串为:   ");  
  12                     bufout.write(input,   0,   count);     //   写入位串流  
  13                     bufout.flush();                               //   强制输出  
  14       p.close();             //   关闭打印流  
  15       stdin.close();       //   关闭输入流  
  16       bufin.close();       //   释放输入缓冲区  
  17       stdout.close();     //   关闭输出流  
  18       bufout.close();     //   释放输出缓冲区  
    }   catch(IOException   e){    
                              System.out.println("发生I/O异常!");  
              }  
        }  
  }  
   
  问题1:   就是直接定义BufferedInputStream   bufin   =   new   BufferedInputStream                
                  (System.in);与通过语句3、4定义的bufin有什么区别啊(bufin已有一样的问题)  
   
  问题2:   各个输入输出流的关闭是否要有一定的次序  
   
   
  问题点数:40、回复次数:3Top

1 楼725137(2006年不会菜)回复于 2006-03-01 19:38:28 得分 20

问题1:   就是直接定义BufferedInputStream   bufin   =   new   BufferedInputStream                
                  (System.in);与通过语句3、4定义的bufin有什么区别啊(bufin已有一样的问题)  
   
  答:使用BufferedInputStream   可以提高读写的效率..  
   
  问题2:   各个输入输出流的关闭是否要有一定的次序  
   
  答:当然要有顺序,从最初的开始.依次向后关..或者直接关闭最上层的包装类就行了.他会自动关闭被包装了的对象  
  Top

2 楼slqit2002()回复于 2006-03-01 20:22:29 得分 0

-----------注意----------  
  问题1如下:  
  BufferedInputStream   bufin   =   new   BufferedInputStream(System.in);  
  中的bufin与  
  DataInputStream   stdin   =   new   DataInputStream(System.in);        
  BufferedInputStream   bufin   =   new   BufferedInputStream(stdin);      
  这两句中定义的bufin有何区别Top

3 楼doway(john)回复于 2006-03-01 20:47:55 得分 20

楼主的这段代码是从哪里找的?楼主知道这里的用法完全不对头吗?  
   
  由于这里的代码完全不对头,因此,对于楼主的问题1的回答是,都个bufin没有什么不同,只是前者的写法还说得过去,后者的写法是胡搞,那是脱裤子放P。  
   
  在这里我给楼主讲一下   JAVA   流的特点和要点:  
  JAVA   流分为两类,一类处理二进制,一类处理文本,不要乱用。  
  从另一个方面,JAVA   流又分为节点流和过滤器流。  
  节点流是流的起点或终点,过滤器流是起点和终点之间的管道。  
  节点流提供了   IO   处理中最基本的功能,而各种过滤器流是为了在节点流或其他过滤器流的基础上提供更多的功能。  
   
  明白了这些,楼主就会明白为什么我说这段代码不对头了,只有当我们需要使用某种过滤器提供的特有功能的时候,我们才应该去使用那种过滤器,否则就完全没必要使用它。  
  Top

相关问题

  • 字节流的弱问题
  • 字节流读取的问题
  • 关于字节流的问题
  • 字节流和字符流有什么区别?
  • ASP中如何快速将字节流转换为字符流?
  • 什么时候用字节流,什么时候用字符流?
  • socket怎么直接发送字符串,不用字节流
  • 关于VB如何访问字节流的问题。
  • bcb中用MSComm如何接收字节流?
  • 请问如何将字节流转换为Blob?(100)

关键词

  • 节点
  • bufin
  • bufout
  • 过滤器
  • 输出
  • 缓冲区
  • 输入
  • 不对头
  • bufferedinputstream
  • stdin

得分解答快速导航

  • 帖主:slqit2002
  • 725137
  • doway

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo