Java流的问题!

来源:百度知道 编辑:UC知道 时间:2024/07/01 06:03:10
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class ByteArrayTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "abcdefghijklmn";
byte [] strBuf = str.getBytes();
ByteArrayInputStream bais = new
ByteArrayInputStream(strBuf); ByteArrayOutputStream baos = new
ByteArrayOutputStream();
transform(bais, baos);
byte[] buf = baos.toByteArray();
System.out.println(new String(buf));
}

public static void transform(InputStream input, OutputStream output) {
int i = 0;
try {
while((i = input.read()) != -1) {
int len =input.read(); int upper = (in

你怎么说只有6次?你怎么计算的?

while((i = input.read()) != -1) {
int upper = (int)Character.toUpperCase((char)i);

你应该用你读取到的 i 直接进行转换,否则你就读取2次了。

我重新整理了一个,你参考看看
http://www.java2000.com.cn/p11699

while((i = input.read()) != -1) {
int len =input.read();
int upper = (int)Character.toUpperCase((char)len);
output.write(upper);
}
因为你while循环的条件中 读一次
下面读一次 但是你只取了下面读的那次结果
而while中循环那次 你只是拿来判断 读的内容没有存