黑马程序员技术交流社区
标题:
文件复制为啥只复制最后一段或最后一行???
[打印本页]
作者:
心?=忐§忑]
时间:
2014-5-2 21:56
标题:
文件复制为啥只复制最后一段或最后一行???
import java.io.*;
public class Demo10 {
public static void main(String args[]) throws IOException {
BufferedReader bf = new BufferedReader(new FileReader(new File("e:\\xxxd.txt"))) ;
String str = null ;
while((str = bf.readLine())!=null){
System.setOut(new PrintStream(new File("e:\\cyc\\copy.txt"))) ; //改变打印方向
System.out.println(str) ;
}
}
}
复制代码
作者:
skill20
时间:
2014-5-2 22:21
本帖最后由 skill20 于 2014-5-2 22:23 编辑
PrintStream是自动刷新不是你这样弄吧?我觉得是没刷新弄的。
System.setOut(new PrintStream("e:\\cyc\\copy.txt"),true);考谱不?
作者:
lzhuas
时间:
2014-5-2 22:26
本帖最后由 lzhuas 于 2014-5-2 22:43 编辑
import java.io.*;
public class Demo10 {
public static void main(String args[]) throws IOException {
BufferedReader bf = new BufferedReader(new FileReader(new File("e:\\xxxd.txt"))) ;
String str = null ;
PrintWriter out = new PrintWriter(new FileWriter("e:\\cyc\\copy.txt"),true);//解决办法
while((str = bf.readLine())!=null){
//System.setOut(new PrintStream(new File("e:\\cyc\\copy.txt"))) ; //改变打印方向
//我看了很久,问题就在你这一行,你不要太贪方便了,在循环里你就不断的创建文件,不断覆盖。。。所以就剩最后一行啦,实在不会就参考着视频写吧,我也在挣扎呢。解决办法是在外面创建流和文件。还有别忘了关闭流,黑马程序员要有好习惯!
out.println(str) ;
} }
}
作者:
Lin0411
时间:
2014-5-2 22:56
犯了一个很低级的错误!!每次写入之前都重新设置了流,肯定只写最后一行了!!
public class Demo10 {
public static void main(String args[]) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("g:\\xxxd.txt"))) ;
String str = null ;
System.setOut(new PrintStream("g:\\copy.txt"));
while((str = bf.readLine())!=null){
System.out.println(str);
}
bf.close();
}
}
作者:
多一点
时间:
2014-5-2 22:58
while((str = bf.readLine())!=null){
System.setOut(new PrintStream(new File("e:\\cyc\\copy.txt"))) ; //改变打印方向
System.out.println(str) ;
}
new PrintStream //开流
new File("e:\\cyc\\copy.txt")//新建文件。
你每读一行,就开一次流,创建一个文件把 上一次的覆盖掉,
最后得到的就是你那样的东西啦。
作者:
心?=忐§忑]
时间:
2014-5-5 14:46
谢谢各位了,我还真没想到这个,对这个还没了解透吧!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2