import java.io.*;
public class ReaderTest
{
public static void main(String[] args)
{
//声明一个字符流;
FileReader fid = null;
//声明一个字符数组,来存字符;
char[] buff = new char[32];
//来记录返回的字节个数
int hasRead = 0;
try
{
fid = new FileReader("ReaderTest.java");
//循环读取内容
while((hasRead = fid.read(buff)) > 0);
{
System.out.print(new String(buff,0,hasRead));
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
得到的结果:Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String
ex out of range: -1
at java.lang.String.<init>(String.java:208)
at ReaderTest.main(ReaderTest.java:18)
问题:1为啥把32换成1024就行了?2还有前提32换成1024,然后把System.out.print(new String(buff,0,hasRead));
换成System.out.print(buff);也能一样输出来,那用String有啥意义么?
求教求教
解决方案 »
- 客户端byte[]通过webservice写入txt中文乱码
- 大家好,关于虚拟机内存的问题!请帮助
- Oaracle9i中的"sysdba“,"sysoper“,"Normal”的区别
- SQL语句,查询条件,如何高效的拼接SQL字符串
- jxl 中文乱码问题
- 我也问个采鸟问题?
- 再次发布-----上海某外企诚聘日语软件研发工程师(月薪7000RMB+)
- 如何知道一个线程到底占了多少内存啊
- java 做 ftpclient如何 取得ftp服务器文件的列表..急
- 怎样做出的JTextArea有UltraEdit那样,有单行加亮的那种效果
- 怎么导入这个包commons-lang.jar
- java中的set和get方法和构造函数什么时候一块用?
while((hasRead = fid.read(buff)) > 0);
多了个分号,晕死了,写代码仔细一点