FileReader与FileWriter
FileReader(文件字符输入流)
- 只能读取普通文本
- 读取文本内容时,比较方便
- 与FileInputStream读取文本时的不同是把数组换成char[ ]数组
1.构造方法:
FileReader(File file) | 创建一个新的 FileReader ,给出 File读取。 |
FileReader(FileDescriptor fd) | 创建一个新的FileReader,给定 FileDescriptor读取 |
FileReader(String fileName) | 创建一个新的 FileReader,给定要读取的文件的名称。 |
2.代码示例:
import java.io.FileReader;
import java.io.IOException;
public class FileReaderTest {
public static void main(String[] args) {
FileReader reader=null;
{
try {
reader = new FileReader("D://JAVATest//test");
//准备一个char数组
char[] chars = new char[4];//一次读取四个字符
int readCount=0;
//按照字符的方式读取
while ((readCount=reader.read(chars))!=-1){
System.out.print(new String(chars,0,readCount));
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
输出:
ABCabc
FileWriter(文件字符输出流)
1.构造方法:
FileReader(File file) | 创建一个新的 FileReader ,给出 File读取。 |
FileReader(FileDescriptor fd) | 创建一个新的 FileReader ,给定 FileDescriptor读取 |
FileReader(String fileName) | 创建一个新的 FileReader,给定要读取的文件的名称。 |
2.代码示例
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterTest {
public static void main(String[] args) {
FileWriter out=null;
try {
out = new FileWriter("D:/JAVATest/filewrite");
char[] chars={'我','最','爱','学','习','了'};
out.write(chars);
out.write("\n");
//写入部分数组
//荣下标3开始,写入3个字符
out.write(chars,3,3);
out.write("\n");
out.write("没有对象不会new一个吗");
out.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
输出:
同理,要是写入的路径上没有文件的话会创建文件!
FileReader与FileWriter执行拷贝
- 只能拷贝普通文本文件
- 利用fileReader与Filewriiter文件进行读和写
- 一边读一边写
- java文件也是普通文本文件
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyTest02 {
public static void main(String[] args) {
FileReader fr=null;
FileWriter fw=null;
try {
//创建一个输入流
fr = new FileReader("D:/JAVATest/filewrite");
//创建一个输出流
fw = new FileWriter("D:/JAVATest/copy02");
char[] chars=new char[6];
int readCount=0;
while ((readCount=fr.read(chars))!=-1){
fw.write(chars);
}
fw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fr != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
输出;
本文来自博客园,作者:星余明,转载请注明原文链接:https://www.cnblogs.com/lingstar/p/16506271.html