import java.io.*;
class A
{
public static void main(String args[]) throws IOException
{
char c[] = new char[500];
FileReader fr = new FileReader("c:\\a.txt");
int num = fr.read(c); //这里为什么这样读取数据的。
String str = new String(c,0,num); //这个String的构造不是很理解。
System.out.println("读取的字符:"+num+",其内容如下:");
System.out.println(str);
}
}这个程序如何处理实际的回车??
class A
{
public static void main(String args[]) throws IOException
{
char c[] = new char[500];
FileReader fr = new FileReader("c:\\a.txt");
int num = fr.read(c); //这里为什么这样读取数据的。
String str = new String(c,0,num); //这个String的构造不是很理解。
System.out.println("读取的字符:"+num+",其内容如下:");
System.out.println(str);
}
}这个程序如何处理实际的回车??
int offset,
int length)
bytes - 要解码为字符的字节
offset - 要解码的首字节的索引
length - 要解码的字节数
如果,遇到汉字,num记录的就不是字符数量了。
代码当中,并没有显式的,对于回车或者换行符进行处理的语句。
以及学会查看API文档
String test=str.replaceAll("\r\n", "666");
System.out.println(test);
结果:读取的字符:34,其内容如下:
bvfdugfk
vbfghdksjvl
dcvhfjdzdbvfdugfk666vbfghdksjvl666dcvhfjdzd666
一次性最多读取字符数组c的长度那么多的字符,返回实际读取的字符个数,因为实际读取到的字符个数与c的长度不一定相等,如文件末尾。
String str = new String(c,0,num); //这个String的构造不是很理解。
将实际读取的字符组成字符串。
另外,你的代码中没有循环,文件长的话,只会读出部分。
看方法的参数与返回值 以及方法的介绍
String str = new String(c,0,num); //用C数组里的C[0]到C[NUM]的构造这个对象,因为数组是有可能没装满的