你仔细瞧瞧!int型的s其实已经被转换成char类型了,只是中间多打印了很多的行号和";;",将这些符号都给拆开来了。如下面代码
- class Demo
- {
- public static void main(String[] args) throws IOException
- {
- FileReader fr = new FileReader("d:Demo.java");
- LineNumberReader lin = new LineNumberReader(fr);
- while(true)
- {
- int s = lin.read();
- if(s==-1)
- break;
- else //把下行中lin.getLineNumber()+";;"+去掉,就没问题了.(char)s应经把int型s已经转换过来了,只是你没打印一个字符就会打印一下当前行号,那么没两个字符中间就多了行号+";;",你仔细瞧瞧!
- System.out.print(lin.getLineNumber()+";;"+(char)s);//为什么这里做了强制转换了还是数字的啊
-
- }
- lin.close();
- }
- }
- //建议要打印行号还是用readLine()方法好。
- /*class Demo{
- public static void main(String[] args){
- FileReader fr = new FileReader("ZhuanHuan.java");
- LineNumberReader lnr = new LineNumberReader(fr);
- String line = null;
- while((line=lnr.readLine())!=null){
- System.out.println(lnr.getLineNumber()+"---"+line);
- }
- lnr.close();
- }
- }*/
复制代码 |