package 第十四章.IO;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;public class C {
public static void main(String[] args) {
try {
File file1=new File("E:"+File.separator+"a.txt");
File file2=new File("E:"+File.separator+"b.txt");
File file3=new File("E:"+File.separator+"c.txt");
BufferedReader br=new BufferedReader(new InputStreamReader(new
FileInputStream("E:"+File.separator+"第一回 宴桃园豪杰三结义 斩黄巾英雄首立功.txt")));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file1)));
BufferedWriter bw1=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file2)));
BufferedWriter bw2=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file3,true),"GBK"));
String s="";
while((s=br.readLine())!=null&&!s.equals(" 榜文行到涿县,引出涿县中一个英雄。"
+ "那人不甚好读书;性宽和,寡言语,喜怒"))
{
bw.write(s);
bw.newLine();
bw2.write(s);
bw2.newLine();
System.out.println(s); }
for(String s1=s;s1!=null;s1=br.readLine())
{ bw1.write(s);
bw1.newLine();
bw2.write(s);
bw2.newLine();
System.out.println(s1); }
br.close();
bw.close();
bw1.close();
bw2.close(); } catch (Exception e) {
e.getMessage();
} }
}
题目要求是把"第一回 宴桃园豪杰三结义 斩黄巾英雄首立功.txt"该文件中的内容分成两部分显示在a.txt和b.txt上和把全部内容显示在c.txt上最后在屏幕中输出
其中“榜文行到涿县,引出涿县中一个英雄。"
+ "那人不甚好读书;性宽和,寡言语,喜怒"))是我在小说中的一句话作为判断条件的
但效果并不是我想的那样
求高手指点一下
而b.txt则什么也没有
try {
File file1 = new File("C:/testJar/a.txt");
File file2 = new File("C:/testJar/b.txt");
File file3 = new File("C:/testJar/c.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream("C:/testJar/CharSetTest.java")));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file1), "UTF-8"));
BufferedWriter bw1 = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file2), "UTF-8"));
BufferedWriter bw2 = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file3, true), "UTF-8"));
String s = br.readLine();
while (s != null
&& !s.trim().equals("public class CharSetTest {")) {
bw.write(s);
bw.newLine();
bw1.write(s);
bw1.newLine();
System.out.println("前段:"+s);
s = br.readLine();
}
bw1.close();
for (String s1 = s; s1 != null; s1 = br.readLine()) {
bw.write(s1);
bw.newLine();
bw2.write(s1);
bw2.newLine();
System.out.println("后段:"+s1);
}
br.close();
bw.close();
bw2.close(); } catch (Exception e) {
e.getMessage();
} }这样试试,自己对照去看看吧,后面for循环肯定是要写入s1了,前面读出来可能会有很多空格,这样可能就一直是循环的while循环,而程序都没有到for循环的。所以价格trim()
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;public class C {
public static void main(String[] args) {
try {
File file1 = new File("d:" + File.separator + "a.txt");
File file2 = new File("d:" + File.separator + "b.txt");
File file3 = new File("d:" + File.separator + "c.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream("d:" + File.separator
+ "第一回 宴桃园豪杰三结义 斩黄巾英雄首立功.txt")));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file1)));
BufferedWriter bw1 = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file2)));
BufferedWriter bw2 = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file3, true), "GBK"));
String s = "";
while ((s = br.readLine()) != null
&& !s.equals("那人不甚好读书;性宽和,寡言语,喜怒")) {//应该是包含其他的字符,比如换行等等,建议不要用equal
bw.write(s);
bw.newLine();
bw2.write(s);
bw2.newLine();
//System.out.println(s); }
for (String s1 = s; s1 != null; s1 = br.readLine()) { bw1.write(s1);
bw1.newLine();
bw2.write(s1);
bw2.newLine();
System.out.println(s1); }
br.close();
bw.close();
bw1.close();
bw2.close(); } catch (Exception e) {
e.getMessage();
} }
}
public static void main(String[] args) throws Exception{ File file1=new File("E:"+File.separator+"a.txt");
File file2=new File("E:"+File.separator+"b.txt");
File file3=new File("E:"+File.separator+"c.txt");
BufferedReader br=new BufferedReader(new FileReader(("E:"+File.separator+"第一回 宴桃园豪杰三结义 斩黄巾英雄首立功.txt")));
PrintWriter pw1 = new PrintWriter(new FileWriter(file1),true);
PrintWriter pw2 = new PrintWriter(new FileWriter(file2),true);
PrintWriter pw3 = new PrintWriter(new FileWriter(file3),true); String s="";
String str = " 榜文行到涿县,引出涿县中一个英雄。"
+ "那人不甚好读书;性宽和,寡言语,喜怒";
boolean flag = false;//标志变量,判断是否读到指定那一行
while((s=br.readLine())!=null)
{
System.out.println(s);
pw3.println(s);
if(s.equals(str)) flag = true;
if(flag)
pw2.println(s);
else
pw1.println(s); }
br.close();
pw1.close();
pw2.close();
pw3.close();
}
}
bw1.newLine();
bw2.write(s);
bw2.newLine();把那个s换成s1就对了,你眼睛瘸了吧