黑马程序员技术交流社区
标题:
麻烦各位看一下为什么我的io流写不进去呢?
[打印本页]
作者:
徐君
时间:
2013-11-20 14:21
标题:
麻烦各位看一下为什么我的io流写不进去呢?
本帖最后由 徐君 于 2013-11-20 21:41 编辑
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
public class test1 {
public static void main(String[] args) throws IOException {
File f = new File("E:\\java\\hello.txt");
StringBuilder sb = new StringBuilder();
FileWriter fw = new FileWriter(f);
InputStream in = System.in;
String temp = null;
while(in.read()!=-1){
sb.append((char)in.read());
temp = sb.toString();
fw.write(temp);
System.out.println(temp);
}
fw.close();
}
}
作者:
@ne_pie尒ce
时间:
2013-11-20 16:11
你这里没有写出去是因为数据在缓冲区中,而你的while循环,没有结束标记
程序一直在等待键盘录入,所以不会去执行fw.close();字符流在关闭流之前也会将缓冲区的数据
刷到指定文件中,但是,你的程序执行不到,
while(in.read()!=-1){
sb.append((char)in.read());//建议不要这样定义缓冲区,来存放录入的数据,直接字节数组就好了,而且应该定义在循环外面,不然要写出的内容会重复
temp = sb.toString();
fw.write(temp);
System.out.println(temp);
fw.flush();//加上这句就可以了
}
fw.close();
作者:
黄炳期
时间:
2013-11-20 17:34
如果问题已经解决,请及时修改主题为“提问结束”。
修改主题的方法链接
http://bbs.itheima.com/thread-89313-1-1.html
作者:
hurryup
时间:
2013-11-20 17:42
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
public class Test1 {
public static void main(String[] args) throws IOException {
File f = new File("F:\\新建文本文档.txt");
StringBuilder sb = new StringBuilder();
FileWriter fw = new FileWriter(f);
InputStream in = System.in;
String temp = null;
int x=0;
while(true){
x=in.read();
temp = sb.toString();
if(x=='\r')
continue;
if (x=='\n')
{
fw.write(temp);
if("over".equals(temp))
break;
sb.delete(0,sb.length());
System.out.println(temp);
}else{
sb.append((char)x);
}
}
fw.flush();
fw.close();
}
}
复制代码
我帮你把循环条件改了下,可以通过了,代码如下:
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2