关于BufferedInputStream.read()的用法
//初始化文件对象
File file = new File("E:/S2文件/JSP","Student");
//创建目录
//out.println(file.mkdir());
//在根目录下创建文件
File f = new File(file,"myFile.txt");
//创建输出流
FileOutputStream fileout = new FileOutputStream(f);
//创建缓存输出流
BufferedOutputStream buffOut = new BufferedOutputStream(fileout);
//创建字节数组
byte b [] = "你们好,很高兴认识你们啊!".getBytes();
//将字节数组写入输出流
buffOut.write(b);
//将缓存输出流中的数据保存至目标文件
buffOut.flush();
//关闭输出流
fileout.close();
//创建输入流对象
FileInputStream in = new FileInputStream(f);
//创建缓存输入流对象
BufferedInputStream bufin = new BufferedInputStream(in);
//设置缓冲区
byte c [] = new byte[10];
int n = 0;
while((n=bufin.read(c))!=-1){
String temp = new String(c,0,n);
out.println(temp);
}
//关闭缓存输入流
bufin.close();
//关闭输入流
in.close();
上面的代码中,为什么当我把byte字节数组的长度给为5时就会出现“你们�茫�高兴�鲜赌�们啊! ”乱码现象呢,而且如果我把 byte b [] = "你们好,很高兴认识你们啊!".getBytes();改为“ byte b [] = "nice to meet you".getBytes();
”这时虽然读出来没有出现乱码,但读出的单词并不连续,请问这是什么原因噢,本人自己学java的文件操作这块,就像中文乱码的问题怎么处理?还有就是字节数组中的长度应该依据什么来给才最合适。