尝试将一个文本文件复制到另一个文件 代码如下:
package test;
import java.io.*;
public class Into { /**
* @param args
*/
public static void main(String[] args) {
try {
FileReader fr = new FileReader("c:\\StaticMethod.java");
BufferedReader br = new BufferedReader(fr);
String s;
while((s = br.readLine())!= null){
System.out.print(s);
}
FileWriter fw = new FileWriter("c:\\static.java");
BufferedWriter bw = new BufferedWriter(fw);
bw.write(s);
bw.flush();
br.close();
bw.close();
fr.close();
fw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}
能都出来 但写不到另外一文件去 问题出在哪 请高人指点
package test;
import java.io.*;
public class Into { /**
* @param args
*/
public static void main(String[] args) {
try {
FileReader fr = new FileReader("c:\\StaticMethod.java");
BufferedReader br = new BufferedReader(fr);
String s;
while((s = br.readLine())!= null){
System.out.print(s);
}
FileWriter fw = new FileWriter("c:\\static.java");
BufferedWriter bw = new BufferedWriter(fw);
bw.write(s);
bw.flush();
br.close();
bw.close();
fr.close();
fw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}
能都出来 但写不到另外一文件去 问题出在哪 请高人指点
控制台显示:
文件内容
at java.io.Writer.write(Unknown Source)
at test.Into.main(Into.java:21)
import java.io.*;
public class Into { /**
* @param args
*/
public static void main(String[] args) {
try {
FileReader fr = new FileReader("c:\\StaticMethod.java");
BufferedReader br = new BufferedReader(fr);
String s;
FileWriter fw = new FileWriter("c:\\static.java");
BufferedWriter bw = new BufferedWriter(fw);
while((s = br.readLine())!= null){
bw.write(s);
bw.newLine();
System.out.print(s);
}
bw.flush();
br.close();
bw.close(); } catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}
while((s = br.readLine())!= null){
System.out.print(s);
}你就打印出来有啥用?
"
因为每readLine()一次,上一行的内容就被刷掉了
如果要这么做的话,可以
StringBuffer buffer=new StringBuffer();
while((s = br.readLine())!= null){
buffer.append(s);
System.out.print(s);
}
bw.write(buffer.toString());