黑马程序员技术交流社区
标题:
带行号的复制文件,行号怎么不出来
[打印本页]
作者:
ifuzhen
时间:
2014-4-23 21:15
标题:
带行号的复制文件,行号怎么不出来
本帖最后由 ifuzhen 于 2014-4-24 16:32 编辑
import java.io.*;
class Test
{
public static void main(String[] args) throws IOException
{
copyfile();
}
public static void copyfile()throws IOException
{
//BufferedReader bufr =null;
FileReader fr =null;
LineNumberReader lnr =null;
BufferedWriter bufw =null;
lnr =new LineNumberReader(fr =new FileReader("Test.java"));
bufw =new BufferedWriter(new FileWriter("Testcopy.java"));
String line=null;
while((line=lnr.readLine())!=null)
{
//System.out.println(lnr.getLineNumber()+":"+line);
bufw.write(lnr.getLineNumber());
System.out.println(lnr.getLineNumber());//在控制台是可以正常显示行号的,到了文件中却显示不出来了??
bufw.write(line);
bufw.newLine();
bufw.flush();
}
}
}
复制代码
作者:
kuroro自走核炮
时间:
2014-4-23 21:32
本帖最后由 kuroro自走核炮 于 2014-4-23 22:24 编辑
import java.io.*;
class Test
{
public static void main(String[] args) throws IOException
{
copyfile();
}
public static void copyfile()throws IOException
{
//BufferedReader bufr =null;
FileReader fr =null;
LineNumberReader lnr =null;
BufferedWriter bufw =null;
lnr =new LineNumberReader(fr =new FileReader("Test.java"));
bufw =new BufferedWriter(new FileWriter("Testcopy.java"));
String line=null;
while((line=lnr.readLine())!=null)
{
//System.out.println(lnr.getLineNumber()+":"+line);
//bufw.write(lnr.getLineNumber());
System.out.println(lnr.getLineNumber());//在控制台是可以正常显示行号的,到了文件中却显示不出来了??
//这里直接输入的行号数字,被系统当作ASC码解析了
bufw.write(lnr.getLineNumber()+" "+line);//合到一句写就OK了。
bufw.newLine();
bufw.flush();
}
}
}
复制代码
作者:
ifuzhen
时间:
2014-4-23 22:08
@kuroro自走核炮;
有可能是重写导致,两句write放到一起确实可以,但是分开写行号竟然变成了符号?
难道和编码有关?
作者:
kuroro自走核炮
时间:
2014-4-23 22:23
ifuzhen 发表于 2014-4-23 22:08
@kuroro自走核炮;
有可能是重写导致,两句write放到一起确实可以,但是分开写行号竟然变成了符号?
难道和 ...
我刚才确认了一下,确实是编码问题……你直接用write写入行号,写进去的int值被系统用asc码给翻译了。你可以试下用原来的函数复制一个100行以上的文件试一下,立刻就能看出效果了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2