黑马程序员技术交流社区
标题:
大家帮个忙,有关JAVA输出
[打印本页]
作者:
雷丹
时间:
2013-10-24 10:59
标题:
大家帮个忙,有关JAVA输出
我要输出之多个文件,代码如下,但是为什么文件生成了,但是里面却没有内容?谢谢!
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class test {
public static void main(String args[])throws Exception{
String[] filename = new String[101];
for (int n = 0;n<101;n++)
{
filename[n]="src/Testvec" + n + ".txt";
java.io.File testvec = new File(filename[n]);
java.io.PrintWriter testout = new PrintWriter(testvec);
testout.print("The weather is good!");
}
}
}
作者:
匡文
时间:
2013-10-24 11:16
你没有关闭流,也没有刷新流,所以数据当然不会写入进去文件啦。
记得养成好习惯,流务必关闭。
代码修改如下,测试可以写入。
package com.itcast.javabean;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class test {
public static void main(String args[])throws Exception{
String[] filename = new String[101];
for (int n = 0;n<5;n++)
{
filename[n]="src/Testvec" + n + ".txt";
java.io.File testvec = new File(filename[n]);
java.io.PrintWriter testout = new PrintWriter(testvec);
testout.print("The weather is good!");
testout.flush(); //关闭流时也会刷新,所以这个可以不用
testout.close(); //养成良好习惯,使用完毕记得关闭流
}
}
}
复制代码
作者:
亲雨泽
时间:
2013-10-24 11:20
首先我们来看这段代码前面都是没有问题的。
涉及到的知识就是:
PrintWriter testout = PrintWriter(File file)
这个构造函数:使用指定文件创建不具有自动行刷新的新 PrintWriter。
也就是说你想写入的那句字符串被printWriter缓存起来了。
要想解决这个问题在最后一行加:
testout.flush();
作者:
Stephen_Chow
时间:
2013-10-24 11:57
1,你写入了缓冲区,需要刷新(或者关闭(底层自动刷新)),testout.flush();/ testout.close();
2,使用println(带ln的print方法会自动刷新)
3,构造方法使用:先把文件封装到流中,在使用:PrintWriter(OutputStream out, boolean autoFlush)
作者:
Yuan先生
时间:
2013-10-24 13:22
java.io.PrintWriter testout = new PrintWriter(testvec);
testout.print("The weather is good!");
这一行行代码只是把字符串写入了缓冲区,并没有写入文件,需要刷新缓冲区
1、flush() 方法,刷新缓冲区,写入文件
2、close()方法,关闭流并刷新
作者:
乔兵
时间:
2013-10-25 08:22
楼主你好,如果问题已解决请将帖子状态修改为提问结束,
如果未解决请继续提问,谢谢合作
修改方法请看解释帖:
http://bbs.itheima.com/thread-89313-1-1.html
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2