题目:
读取一个文本文件,并显示该文本的内容,同时写到另外一个文本文件中。
提示:使用File类进行文件或目录的操作。
学到了读文件写文件的部分,就写一个测试题在这里吧
一共是两个文件 ⑴ByteCharacterConversionStream.java ⑵ByteCharacterConversionStreamTest.java
我现在是养成了一个习惯,是测试类和需要完成的功能会分开写,感觉看上去会比较简洁
代码如下:
⑴ByteCharacterConversionStream.java
package SeventhPackage;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
public class ByteCharacterConversionStream {
/**
* 写文件
* author:bw*/
public void writeFile(String filePathAndName,String fileContent){
try {
String filePath=filePathAndName;
FileOutputStream fos=new FileOutputStream(filePath);
OutputStreamWriter osw=new OutputStreamWriter(fos);//创建字符流--需要把字节流转成字符流
BufferedWriter bw=new BufferedWriter(osw);//创建字符缓冲输入输出流
if(fileContent!=null){//确定要写入文件的内容不为空
bw.write(fileContent);
bw.newLine();
}
bw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读文件*/
public void readFile(String filePathAndName){
try {
//System.out.println(filePathAndName);
FileInputStream fis=new FileInputStream(filePathAndName);
Reader reader=new InputStreamReader(fis);//创建字符流--需要把字节流转成字符流
BufferedReader br=new BufferedReader(reader);//创建字符缓冲输入输出流
String str;
while((str=br.readLine())!=null){
System.out.println(str);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
/**
* 复制文件*/
public void copyFile(String oldFilePath,String newFilePath){
try {
FileInputStream fis=new FileInputStream(oldFilePath);
InputStreamReader isr=new InputStreamReader(fis);
BufferedReader br=new BufferedReader(isr);
FileOutputStream fos=new FileOutputStream(newFilePath);
OutputStreamWriter osw=new OutputStreamWriter(fos);
BufferedWriter bw=new BufferedWriter(osw);
String str;
while((str=br.readLine())!=null){
bw.write(str);
bw.newLine();
}
br.close();
bw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
}
⑵ByteCharacterConversionStreamTest.java
package SeventhPackage;
public class ByteCharacterConversionStreamTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ByteCharacterConversionStream file=new ByteCharacterConversionStream();
//写文件
file.writeFile("D:\\bw\\bwhk.txt", "bw");//当文件不存在时会自动创建新文件//文件内容可以写中文
//读文件
System.out.println("文件的内容是:");
file.readFile("D:\\bw\\bwhk.txt");
//复制文件
file.copyFile("D:\\bw\\bwhk.txt", "D:\\bw\\bwhk2222.txt");
System.out.println("新文件的内容是:");
file.readFile("D:\\bw\\bwhk2222.txt");
}
}
运行结果:
控制台:
系统中: