求java io流输出机制详解 尤其是write()方法循环执行几次之后再flush发现数据一点都没写进文件。越研究越觉得问题多,求大虾详细说下这几个字节型和字符型的IO类的运行机制。小弟冰天雪地裸体360度托马斯旋转跪求 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看你的代码怎么write的?你write完了之后,close掉再看 网上找的例子:import java.io.*;public class FileWriterSample { public static void main(String[] args) { write("E:\\hehehe\\Metadata.txt", "hello"); } public static void write(String path, String content) { String s = new String(); String s1 = new String(); try { File f = new File(path); if (f.exists()) { System.out.println("文件存在"); } else { System.out.println("文件不存在,正在创建..."); if (f.createNewFile()) { System.out.println("创建成功!"); } else { System.out.println("创建失败!"); } } BufferedReader input = new BufferedReader(new FileReader(f)); while ((s = input.readLine()) != null) { s1 += s + "\n"; } System.out.println("文件内容:" + s1); input.close(); s1 += content; BufferedWriter utput = new BufferedWriter(new FileWriter(f)); utput.write(s1); utput.close(); } catch (Exception e) { e.printStackTrace(); } }} 输出流 文本文件用readline比较好,图片之类的定义byte数组更好点 package yidu.nimblewind.test;import java.io.*;import java.util.*;public class Test { public static void main(String[] args) { File f; try { f = new File("myinput.txt"); Scanner s = new Scanner(System.in); boolean flag = true; // 1 point BufferedWriter bw = new BufferedWriter(new FileWriter(f,true)); while(flag) { BufferedWriter bw = new BufferedWriter(new FileWriter(f,true)); bw.write(s.next()); if(s.next().equalsIgnoreCase("quit")) { bw.flush(); bw.close(); break; } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}//1 point 表示的是BufferedWriter bw = new BufferedWriter(new FileWriter(f,true));这条代码在循环外的时候我输入 a回车b回车c回车quit 结果是ac我清空myinput.txt文件后,将上面的代码定到循环内,结果只显示C。两种情况下quit打死都没写进去。这是个神马情况。代码是我朋友写的,我看半天也没找到错误原因。请大家指点 Scanner s = new Scanner(System.in);中的System.in记录的是一行的数据,具体可以看一下底层实现换行后只记录最后一行的数据你试试最后一行输入:sfdasfd当然最好在代码执行前将myinput.txt删掉 楼上兄台果然是个人才,那请问我a回车b回车c回车quit 结果是ac,b为什么没了,quit也没了 请问一个关于字符串替换的问题。 JAVA DOM方式操作XML疑问? 进度条问题,花了好多分都没解决,最后一次了 这两个方法如何合并为一个方法? 小妹急于找工作,请大家介绍一下快速学习Java的方法!!! 还有一个困绕了很久很菜的问题,在IE6.0下为什么无法看到我编的APPLET(只有一块灰色的区域) 菜鸟问题,望大虾帮忙! 一个格式化输出的代码,帮忙看看,编译通过,为什么显示不出来! 新手 强烈推荐的《java编程思想(完整版)》,这里有下载。 学习第一天遇到问题…… 求助高人~关于jasperreports 标题一定要长~~~~~~~~~
public static void main(String[] args) {
write("E:\\hehehe\\Metadata.txt", "hello");
} public static void write(String path, String content) {
String s = new String();
String s1 = new String();
try {
File f = new File(path);
if (f.exists()) {
System.out.println("文件存在");
} else {
System.out.println("文件不存在,正在创建...");
if (f.createNewFile()) {
System.out.println("创建成功!");
} else {
System.out.println("创建失败!");
}
}
BufferedReader input = new BufferedReader(new FileReader(f));
while ((s = input.readLine()) != null) {
s1 += s + "\n";
}
System.out.println("文件内容:" + s1);
input.close();
s1 += content;
BufferedWriter utput = new BufferedWriter(new FileWriter(f));
utput.write(s1);
utput.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.util.*;public class Test {
public static void main(String[] args) {
File f;
try {
f = new File("myinput.txt");
Scanner s = new Scanner(System.in);
boolean flag = true;
// 1 point BufferedWriter bw = new BufferedWriter(new FileWriter(f,true));
while(flag) {
BufferedWriter bw = new BufferedWriter(new FileWriter(f,true));
bw.write(s.next());
if(s.next().equalsIgnoreCase("quit")) {
bw.flush();
bw.close();
break;
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//1 point 表示的是BufferedWriter bw = new BufferedWriter(new FileWriter(f,true));这条代码在循环外的时候我输入 a回车b回车c回车quit 结果是ac
我清空myinput.txt文件后,将上面的代码定到循环内,结果只显示C。两种情况下quit打死都没写进去。这是个神马情况。代码是我朋友写的,我看半天也没找到错误原因。请大家指点
中的System.in记录的是一行的数据,具体可以看一下底层实现
换行后只记录最后一行的数据
你试试最后一行输入:sfdasfd
当然最好在代码执行前将myinput.txt删掉