题目是利用缓冲流 输入一行一行的字符 把他们写入文件write.txt中 直到输入quit时结束。import java.io.*;
import java.util.Scanner;public class write{
public static void main(String[] args) throws java.io.IOException {
File file = new File("write.txt");
Scanner scan1 = new Scanner(System.in);
while(true)
{
String scan = scan1.next();
if(scan1.next() == "quit")
break;
FileWriter fw = new FileWriter(file);
BufferedWriter bufw = new BufferedWriter(fw);
bufw.write(scan);
bufw.close();
fw.close();
}
}
}
但是运行后它只能出来quit一行。。
import java.util.Scanner;public class write{
public static void main(String[] args) throws java.io.IOException {
File file = new File("write.txt");
Scanner scan1 = new Scanner(System.in);
while(true)
{
String scan = scan1.next();
if(scan1.next() == "quit")
break;
FileWriter fw = new FileWriter(file);
BufferedWriter bufw = new BufferedWriter(fw);
bufw.write(scan);
bufw.close();
fw.close();
}
}
}
但是运行后它只能出来quit一行。。
import java.util.Scanner;public class write{
public static void main(String[] args) throws java.io.IOException {
File file = new File("write.txt");
Scanner scan1 = new Scanner(System.in);
while(true)
{
if(scan1.next() == "quit")
break;
else
{
String scan = scan1.next();
FileWriter fw = new FileWriter(file);
BufferedWriter bufw = new BufferedWriter(fw);
bufw.write(scan);
bufw.close();
fw.close();
}
}
}
}改了下程序 但是好像解决不了循环的问题 只记录下了第一行就结束了
import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;public class Write {
public static void main(String[] args) throws java.io.IOException {
File file = new File("write.txt");
FileWriter fw = new FileWriter(file);
BufferedWriter bufw = new BufferedWriter(fw);
Scanner scan1 = new Scanner(System.in);
while (true) {
String scan = scan1.next();
System.out.println(scan);
if ("quit".equals(scan)){
break;
}else{
bufw.write(scan);
bufw.write("\n");
}
}
bufw.close();
fw.close();
}
}
BufferedWriter bufw = new BufferedWriter(fw);
这个要放在最外面,不然每次都会重新创建一个,就把原来的清除了
BufferedWriter bufw = new BufferedWriter(fw);
这两行代码,记得放在try()里面 ,这样做就不必自己关闭流了。不过这是1.7JDK的特性如果输入为quit则结束,这个还是很好实现的吧。
File file8=new File("E:\\text\\test8.txt");
if(!file8.exists()){
file8.mkdirs();
}
Scanner sc=new Scanner (System.in);
BufferedWriter bw=new BufferedWriter(new FileWriter(file8));
while(true){
String scan=sc.next();
if("qiut".equals(scan)){
break;
}else{
bw.write(scan+"\r\n");
}
}
bw.close();//
import java.util.Scanner;public class Write{
public static void main(String[] args) throws java.io.IOException {
File file = new File("C://write.txt");
BufferedWriter bw = null;
FileWriter fw = null;
while(true)
{
fw = new FileWriter(file,true);
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
System.out.println("请输入一段话:");
String scan = sc.next();
if("quit".equals(scan))
break;
bw = new BufferedWriter(fw);
bw.newLine();
bw.write(scan);
bw.close();
fw.close();
}
}
}
这样就好使了 file后那个参数加个true就是说后面写的数据写到文件末尾处 不是开始处了 就不会覆盖了