Android-IO流之文件字符流FileReader/FileWriter

目录

  1. FileReader/FileWriter
    --7.1 FileReader
    --7.2 FileWriter
    --7.3 使用FileWriter和FileReader拷贝文件

7.FileReader/FileWriter

可直接读写字符的IO流

什么时候用字符流?
字符流->用于只读只写,这样就不会出现半个中文的情况
字节流->用于拷贝(如果用字符流,还要进行字节到字符到字节的转换)

注意:字符流不可用于非纯文本的文件的拷贝,会造成文件乱码。
因为读的时候会把字节转字符,找不到对应字符,则用?来代替。写出的时候把字符转为字节,如果有?文件则会乱码。

7.1 FileReader

  1. FileReader常用构造方法
public FileReader(String fileName)
public FileReader(File file)

2.重要方法

//都是继承自Reader的方法
int read()
int read(char[] b)
int read(char[] b , int off ,int len)

7.2 FileWriter

  1. FileWriter常用构造方法
public FileWriter(String fileName)
public FileWriter(String fileName, boolean append) //boolean append是否在原有基础上继续写
public FileWriter(File file)
public FileWriter(File file, boolean append)//boolean append是否在原有基础上继续写

2.重要方法

//都是继承自Writer
void write(char[] b)
void write(char[] b, int off, int len)
void write(int b)

void write(String str)
void write(String str, int off, int len)
Writer append(char c)
Writer append(CharSequence csq)
Writer append(CharSequence csq, int start, int end)

7.3 使用FileWriter和FileReader拷贝文件

File dir = Environment.getExternalStorageDirectory();
File file = new File(dir, "abc.txt");
File dst = new File(dir, "dst2.text");

FileReader fr = new FileReader(file);
FileWriter fw = new FileWriter(dst);

int len = -1;
char[] buffer = new char[1024];
while ((len = fr.read(buffer)) != -1) {
   fw.write(buffer, 0, len);
}
        
fr.close();
fw.close();

你可能感兴趣的:(Android-IO流之文件字符流FileReader/FileWriter)