各位大虾帮忙看一下,为什么会这样
import java.io.*;import java.util.*;
import static java.lang.System.out;
public class CharArrayReaderWriterDemo
{
public static void main(String[] args)
{
try
{
File file=new File(args[0]);
BufferedReader bufInputReader=new BufferedReader(new FileReader(file));
//将文件读入字符数组
CharArrayWriter charArrayWriter=new CharArrayWriter();
char[] array=new char[1];
while (bufInputReader.read(array)!=-1)
{
charArrayWriter.write(array);
}
charArrayWriter.close();
bufInputReader.close();
//显示字符数组的内容
array=charArrayWriter.toCharArray();
for (int i=0;i<array.length;i++)
{
out.print(array[i]+" ");//问题在这一句
}
out.println();
}
catch (ArrayIndexOutOfBoundsException e)
{
out.println("请指定文件名称!");
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
红色那句,为什么加了" "后第一个字print不出来,比如一个文件1.txt第一个字是P,但就是出不来。而把" "去掉以后,就出来了,大虾给小弟解释一下下(ˇˍˇ)
----------------解决方案--------------------------------------------------------
我尝试了下程序,可以打印出来啊。
----------------解决方案--------------------------------------------------------
回复 2楼 baifenghan
如果读取的文件只写一行的确能正确打印,但是如果在读取的文件第一行加上换行,第二行不写任何东西,读取出来第一行的第一个字就会莫名奇妙地被“吃“了
我怀疑是"\r\n",但是这样想得话,遇到换行时先\r移至第一个字,应该是先做\n然后空格才对
但实际是移到第一个字然后空格(空格就把第一个字“吃”了)然后再\n换到下一行的,
这样有什么不对吗?还有把源程序里面的+" "去掉就没有任何问题的
----------------解决方案--------------------------------------------------------
路过
----------------解决方案--------------------------------------------------------
hehe
----------------解决方案--------------------------------------------------------