2 constant f constant_f 于 2016.03.29 06:25 提问

ByteArrayOutputStream输出乱码问题,新人不懂啊,求教!

碰到一个乱码问题,不知道哪里问题,想请教下,谢谢。
PS:一个输出流的大小写转换问题,代码如下:
package io;
import java.io.*;
public class Trans {
public static void main(String[] args) throws Exception{
String s="abcdef";
//System.out.println(s);
byte[] a=s.getBytes();
ByteArrayInputStream in=new ByteArrayInputStream(a);
ByteArrayOutputStream out=new ByteArrayOutputStream();
new Trans().chang(in,out);
byte[] r=out.toByteArray();
System.out.println(r);
//System.out.println(out.toByteArray());
}
private void chang(InputStream in,OutputStream out) {
int c=0;
try{
while((c=in.read())!=-1)
{
int s=(int)Character.toUpperCase((char)c);
out.write(s);
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
这是输出:[B@6bbc4459 预计中是得到ABCDE的结果,但是结果却是这样的。

2个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.29 06:38
已采纳
    因为你是直接打印这个系列数组,所以输出的是地址,而且这个输出不是乱码是地址,你应该用这个字节数组创建字符串输出才对,修正main最后一行输出System. out. println(new String(r));
caozhy
caozhy   Ds   Rxr 2016.03.29 06:34

int s = (c >= 97 && c <= 122) ? c - 32 : c;
out.write((char)s);

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ByteArrayOutputStream转成String
ByteArrayOutputStream out = new ByteArrayOutputStream(); //serializer.setOutput(out, "utf-8");  new String(out.toByteArray(), "utf-8");
ByteArrayOutputStream源代码解析(解决乱码问题)
ByteArrayOutputStream源代码解析博主最近在做数据写入方面的内容,顺便看了一下ByteArrayOutputStream的源代码,下面对源代码中的各个变量和方法进行一下介绍。这个类主要是JDK中提供的对Byte类型数据进行写入的类,其实是一个中间缓存层,数据将通过这个类写入到文件等其他outputstream变量 protected byte buf[] 这个是数据存储的地方
IO中用ByteArrayOutputStream解决乱码问题
IO中用ByteArrayOutputStream解决乱码问题 2011-03-01 23:29 IO中另外一种防止乱码的方法:使用ByteArrayOutputStream 在创建ByteArrayOutputStream时,会自动创建一个以自动增长的缓存区,当数据读取完后再一起统一写出来,就不会有乱码的问题了 import java.io.ByteArrayOutp
InputStream读取中文字符并由ByteArrayOutputStream写入
public String getString() { String str = ""; InputStream in = this.getClass().getResourceAsStream("/res/data.txt"); int c; ByteArrayOutputStream bais = new ByteArrayOutputStream(); tr
关于ByteArrayOutputStream(字节数组输出流)的一个例子,与ByteArrayInputStream作一比较
import java.io.*;public class ByteArrayOutputStreamDemo ...{    /** *//**     * ByteArrayOutputStream是一个把字节数组当作输出流的实现。我认为是所流当作数组来实现.它和ByteArrayInputStream不太一样。不能类比学习.     *      * java.lang.Object  
使用ByteArrayOutputStream解决FileInputStream读取过程中的乱码问题
public static void main(String[] args) throws IOException { // 1.read(byte[] b);是字节输入流中的方法,创建FileInputStream,关联a.txt FileInputStream fis = new FileInputStream("a.txt"); // 2.创建内存输出流,将读到的数据写到内存输出
Java ByteArrayOutputStream 内存输出流
Java ByteArrayOutputStream 内存输出流概述 此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据 ByteArrayOutputStream 构造方法 构造方法 说明 ByteArrayOutputStream() 创建一个新的 byte 数组输出
(使用字节流实现:FileInputStream和ByteArrayOutputStream)
题目:在文本文件中存有斐波那契数列,1,1,2,3,5,8,13,21,34,55,……,读取第12个数(使用字节流实现:FileInputStream和ByteArrayOutputStream) package 输入输出流;import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import jav
使用ByteArrayOutputStream下载文件
ByteArrayOutputStream baos = new ByteArrayOutputStream(); response.setContentType(response.getContentType()); response.setHeader("Content-disposition",
新人求教~~
思路:从数据库某表中查出所有照片信息,然后想在jsp网页上把这些照片放入一个3行5列的表格中,如果照片数量大于15,会分页显示;问题:如何实现在jsp网页上的存入表格工作?或者说人人网的相册功能里照片是按照表格样式显示,如何实现~~~谢谢各位大大~~~