- 字符流的主要概述:
- 1.字符流的诞生是为了解决除了英语以外的语言在编程中出现的情况,比如汉字,汉字在UTF-8中占三个字节导致乱码无法读取,而在字符流中只占一个字符方便读取。
- 所以与字节流相比,字符流更适合读取文本数据
- java.io.Reader抽象类是标识用于读取字符流的所有类的父类,可以读取字符信息到内存中。它定义了字符输入流的基本功能方法。
- void write(int c)写入单个字符。
void write(char[] cbuf)写入字符数组。
abstract void write(char[] cbuf,int off,int len)写入字符数组的某一部分,0ff数组的开始索引len写的字符个数。
void write(String str)写入字符串。
void write(String str,int off,int len)写入字符串的某一部分,of字符串的开始索引len写的字符个数
void flush()刷新该流的缓冲。
void close()关闭此流,但要先刷新它。
字符输入流:Reader
字符输入流简单理解为把文件内容输出到内存中执行读的操作,就是把文件的内容展示在系统工作台里面
- 基本代码展示:
package JavaTest1213;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class JavaTest01 {
public static void main(String[] args) throws IOException {
File f1=new File("D:/xo");
f1.mkdirs();
File f2=new File(f1,"a.txt");
f2.createNewFile();
Reader in=new FileReader(f2);
char[] buff=new char[10];
int n= in.read(buff);
String s=new String(buff,0,n);
System.out.println(s);
int n1= in.read(buff);
String s1=new String(buff,0,n1);
System.out.println(s1);
}
}
输入流就是把文件的内容输出到内存中执行的是读操作(就是把文件的内容展示在系统的工作台里面)
结果如下:
字符输出流:FileWrite
java.io.Nriter 抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。它定义了字节输出流的基本共性功能方法。
字符输出流简单理解为:
把内容的内存输出到文件中执行写的操作就是向文件中写入内容
基本代码展示:
package JavaTest1213;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class JavaTest02 {
public static void main(String[] args) throws IOException {
File f1=new File("D:/b.txt");
if (!f1.exists()){
f1.createNewFile();
}
Writer out=new FileWriter(f1);
// out.write(97);
out.write((int)'我');
char[] ch={'移','动','开','发'};
out.write(ch,0,3);
out.write("河南南阳");
out.flush();
out.close();
}
}
结果如下: