标题: 字符串所在字节大小以及字符串读取问题? [打印本页] 作者: 刘文飞 时间: 2012-10-28 11:11 标题: 字符串所在字节大小以及字符串读取问题? 代码如下,问题在注释中:
————————————————————————————————————————
import java.io.File;
import java.io.OutputStream;
import java.io.InputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
public class OutputStreamDemo01{
public static void main(String args[])throws Exception{
File f = new File("i:"+File.separator+"code"+File.separator+"java"+File.separator+"OutputStream.txt");
OutputStream ops = new FileOutputStream(f);
String str = "hezi";
byte[] b = str.getBytes();
ops.write(b);
ops.close();
InputStream ips = new FileInputStream(f);
byte b2[] = new byte[(int)f.length()];//此处字符串的字节数是四,一个字母占一个字节,
//char类型一个字母为什么占的是两个
int num = ips.read(b2);
int i = ips.read();//读取的i=-1,而不是104?
ips.close();
System.out.println("content:" + i + "\t" + "num:" + num +
"\t" + "length:" + f.length());
}
}
作者: 林志进 时间: 2012-10-28 12:24
int num = ips.read(b2);//第一次读取的时候就已经把流里的数据都存到b2数组里面了
System.out.println(Arrays.toString(b2)); //打印数组里面的数据
int i = ips.read();//所以这里读取的话返回是-1
注:如果想一个一个字节读取数据的话,用ips.read();返回的就是字节作者: 刘文飞 时间: 2012-10-28 14:21
林志进 发表于 2012-10-28 12:24
int num = ips.read(b2);//第一次读取的时候就已经把流里的数据都存到b2数组里面了
System.out.println(Ar ...