`

Java中读取字节流并按指定编码转换成字符串的方法

    博客分类:
  • Java
阅读更多

参考: http://www.blogjava.net/pengpenglin/archive/2008/12/16/220350.html

 

 

该方法中使用一个无限循环,从字节流中读取字节,存放到byte数组中,每次读取1024个字节(一般都是这个设置),由于每次读取的字节数量不一定够1024个(比如最后一次的读取就可能不够),所以我们要记录每次实际读到的字节数,然后将实际读取到的字节按指定的编码方式转换成字符串。

 

private String inputStreamToString(InputStream is, String encoding) {
    try {
         byte[] b = new byte[1024];
         String res = "";
         if (is == null) {
                return "";
         }
         
         int bytesRead = 0;
         while (true) {
             bytesRead = is.read(b, 0, 1024); // return final read bytes counts
             if (bytesRead == -1) {// end of InputStream
                    return res;
             }
             res += new String(b, 0, bytesRead, encoding); // convert to string using bytes
          }
      } catch (Exception e) {
            e.printStackTrace();
            System.out.print("Exception: " + e);
            return "";
      }
}

 

分享到:
评论

相关推荐

    Java实现的两个工具类,解决从键盘输入后,获得各种数据的问题的工具包及把socket字节流中包含的数据转换成字符串

    字节流和字符串之间的转换通常是通过字符编码完成的,如UTF-8。在Java中,可以使用InputStreamReader和BufferedReader将InputStream转换为字符流,然后读取字符串。反之,使用OutputStreamWriter和BufferedWriter将...

    将图片转成二进制并生成Base64编码字符串,再将二进制转换成各种图片

    例如,`TestImageBinary.java`可能会有一个方法,接受图片路径作为输入,读取图片,将其转换为Base64字符串,然后再反向操作,将Base64字符串转换回图片。 `20090709442.jpg`文件很可能是用来测试上述代码的图片。...

    Java IO字符流和字节流

    ### Java IO字符流和字节流详解 #### 一、引言 在Java编程中,输入输出(简称IO)操作是十分重要的一个方面。通过IO操作,我们可以读取文件、网络数据、用户输入等,也可以将数据写入到文件、网络、控制台等。Java...

    Java字节流与字符流的介绍.pdf

    InputStreamReader 把字节流转换成字符流;BufferedReader 缓冲字符流,使得能够使用 readline() 等方法,直接读取一行。 Java 的流操作分为字节流和字符流两种,字节流是最基本的,字符流是为了处理字符而提出来的...

    XML文档转换成字符串

    最后,通过调用`transform()`方法,将XML文档转换成字节数组,并将结果转换为字符串。 值得注意的是,上述代码使用了`try-catch`块来处理可能出现的异常,例如文件读写错误、XML解析错误等。在实际应用中,应根据...

    Java 从网络中读取图片 转换成Base64字符串

    在Java编程中,将网络上的图片读取并转换为Base64字符串是一项常见的任务,尤其在Web开发中,这样的操作可以用于数据传输或者存储。Base64是一种编码方式,能够将二进制数据转化为可打印的ASCII字符,方便在网络上...

    如何用java实现不同编码方式字符串的转换(包含异常处理、重复不终止输入、缓冲区bufferedreader的使用)

    在Java编程中,处理不同编码方式的字符串转换是一项常见的任务,尤其在处理来自不同系统或网络的数据时。本文将深入探讨如何使用Java实现这一过程,同时涵盖异常处理、重复不终止输入以及`BufferedReader`的高效使用...

    Java设置String字符串编码方法详解

    总结起来,Java提供了多种方法来处理字符串的编码问题,包括构造String对象、转换为字节数组、读写文件以及处理URL。理解并正确使用这些方法可以避免常见的编码问题,如乱码和数据丢失。在开发过程中,始终记住指定...

    按byte截取字符串

    本篇文章将详细探讨“按byte截取字符串”这一技术点,并通过两个Java文件——SliceByByteTest.java和SliceByByte.java的实例来阐述其实现方法。 首先,我们需要理解字符串在计算机内存中的存储方式。在Java中,字符...

    图片文件与Base64编码字节数组字符串互转

    在IT领域,尤其是在Web开发中,图片文件与Base64编码字节数组字符串的转换是一种常见的操作。这种转换在不直接使用图片文件路径或URL,而是将图片数据嵌入到HTML、CSS或JavaScript中时非常有用。下面我们将详细探讨...

    java 文件编码转换

    通过创建这些对象,可以读取字节流并将其解码为字符串,同时指定源编码和目标编码。 编码转换的过程通常包括以下步骤: 1. **检测编码**:使用`FileCharsetDetector`或类似工具,对文件进行预读,分析字节模式,...

    JAVA 转换字符编码工具

    - `StreamGobbler.java`:可能是用来处理输入流的类,可能包含从输入流中读取数据并进行编码转换的功能。 - `BufferedStream01.java`:可能实现了使用缓冲流进行文件读写的例子,可能涉及到字符编码转换。 - `...

    Java 字节流、字符流题目.docx

    练习五中,读取的字节数组需要转换为字符串,可以使用`new String(byte[])`构造函数完成。 扩展题中,练习一需要统计特定字符在文件中的出现次数,这可以通过遍历字节输入流,检查每个字节是否等于目标字符的ASCII...

    java 3des加密 和字符串转换

    在Java中,我们可以使用`getBytes()`方法将字符串转换为字节数组,使用`new String(byte[])`将字节数组转换回字符串,但要注意编码问题,通常使用UTF-8编码。 将加密后的字节数组转换为16进制字符串,是因为16进制...

    java读取图片并转化为二进制字符串的实现方法

    Java读取图片并转化为二进制字符串的实现方法是一个涉及到文件操作、字节流处理、Base64编码和解码的技术话题。本文将详细介绍上述过程的步骤和关键知识点。 首先,我们需要了解Java中处理文件读写的基本类,比如`...

    Java字符编码转换过程说明

    Java字符编码转换是Java开发中一个重要的概念,涉及到数据的正确读取、存储和传输。在Java中,编码转换通常发生在以下几个场景: 1. **JVM启动与系统属性**: JVM启动时,会根据操作系统的环境设置一些系统属性,...

    JAVA_字节流和字符流

    在Java编程语言中,字节流(Byte Stream)和字符流(Character Stream)是处理输入输出数据的两种基本方式。字节流主要用于处理任何类型的二进制数据,如图片、音频、视频等,而字符流则专为处理基于Unicode编码的...

    JAVA_字符编码

    这意味着每个字符串中的字符都是一个Unicode代码点。例如,字母"A"的Unicode代码点是65(十进制),在Java中表示为`\u0041`。 处理字符编码时,Java提供了`InputStreamReader`和`OutputStreamWriter`类来读写带有...

    java_各种编码转换源代码

    在`CodeConvert.java`源代码中,可能会包含以上提到的编码转换技术的实现,比如通过`InputStreamReader`和`OutputStreamWriter`读写文件,或者使用`String`类的方法进行字节和字符串之间的转换。通过学习和理解这段...

Global site tag (gtag.js) - Google Analytics