当前位置:  技术问答>java相关

关于inputstream的问题来者有分!!

    来源: 互联网  发布时间:2015-02-03

    本文导语:  1,如何读取inputstream的内容? 2,读取到的东西不能有乱码    int read(byte[] b) 方法可能中断分开中文字符 3,byte b = new byte[streamlength];    inputs.read(b);    temp=new String(b);       System.out.print(temp); 按长度读取...

1,如何读取inputstream的内容?
2,读取到的东西不能有乱码
   int read(byte[] b) 方法可能中断分开中文字符
3,byte b = new byte[streamlength];
   inputs.read(b);
   temp=new String(b);   
   System.out.print(temp);
按长度读取出现一大串不可见字符,整个inputstream不完整

           

|
1、解决你乱码的问题
首先你必须知道你读的文件是什么字符集的文件
然后可以:temp = new String(b,"你文件的字符集,如:GB2312")
2、解决没有读全的问题
在你的代码byte b = new byte[streamlength];中,你怎么知道streamlength的?
下面是JDK1.3.1对于inputstream返回值的说明:
Returns:
the total number of bytes read into the buffer, or -1 is there is no more data because the end of the stream has been reached.
很显然,你要监测read(byte[] b) 函数的返回值,只有返回-1才表示已经读完了。

====看了还有很多人对流的概念不了解====


|
BufferedInputStream(InputStream in) 

|
java里char是16位,当然就有问题了。
直接用write(byte[])不就行了吗?:)
java里stream的操作那么多,多看api就明白了(尽管我现在还是不明白:)

|
换另一种方法试一试,采用java.net包里的Objectinputstream试试
他是把对象放在输入流里,
在另一端,用对象把他解开即可.

|
1

|
2

|
你用一个filter吧。例如bufferedreader

|
InputStream is = sock.getInputStream();

DataInputStream dis = new DataInputStream(is);


|
关注

|
robber is right!

|
对于流,如果使用byte的方式读取,那无论什么样的文件都可以正确读出。包括二进制的图片文件。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.io类inputstream的类成员方法: inputstream定义及介绍
  • 奇怪,为什么BufferedInputStream的构造器参数是(InputStream in)和(InputStream in,int size)啊?InputStream是抽象类,怎么能被实例化呢?
  • java命名空间java.io类inputstream的类成员方法: close定义及介绍
  • 如何将String转换为InputStream,如何将InputStream转换为String(高手请进)
  • java命名空间java.io类inputstream的类成员方法: marksupported定义及介绍
  • 请问如何把StringBuffer 的对象转化成一个InputStream 的对象,或者InputStream 子类的对象也可以!
  • java命名空间java.io类inputstream的类成员方法: available定义及介绍
  • InputStream and String如何相互转换?( 在线等待中)
  • java命名空间java.io类inputstream的类成员方法: mark定义及介绍
  • InputStream流写到数据库里抛出以下的异常??
  • java命名空间java.io类inputstream的类成员方法: skip定义及介绍
  • 如何将字符型变量转化为InputStream型变量?
  • java命名空间java.io类inputstream的类成员方法: reset定义及介绍
  • InputStream读不了1000个字节后面的字节,怎么回事?
  • java命名空间java.io类inputstream的类成员方法: read定义及介绍
  • 只使用InputStream/OutputStream进行IO操作行吗?
  • 如何将char[]转化为InputStream?
  • 请问:已经得到一个输入流(InputStream)如何读出缓冲区中的内容,字节形式,返回byte[]
  • 请问:InputStream is =getClass().getResourceAsStream("/db.properties")中,getResourceAsStream 是什么意思,文件db.properties应该
  • 如何创建一个file,直接把一个string写入这个file?是否可以不用到outputStream和inputStream?
  • inputStream,outputStream与writer和reader的本质区别。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3