字符输入流:Reader
字符输出流:Writer
编码:String str="大鱼";
byte[] bytes = str.getBytes();//返回字节数组
byte[] bytes1 = str.getBytes("UTF-8");//返回指定格式的字节数组
System.out.println(Arrays.toString(bytes));//[-27, -92, -89, -23, -79, -68] System.out.println(Arrays.toString(bytes1));//[-27, -92, -89, -23, -79, -68]
默认的格式是UFT-8
解码:String s=new String(bytes,"UTF-8");//返回自定义编码格式的字符串
String s1=new String(bytes);//返回指定格式的字符串
System.Out.Println(s);
字符流写数据:OutputStreamWriter
FileWriter:用法与OutputStreamWriter类似,但遇见编码还是用OutputStreamWriter
OutputStreamWriter opsw = new OutputStreamWriter(new FileOutputStream("IOTest.txt"));
opsw.write(92);//写入字符
opsw.write("Hello");//字符串
char[] ch={'a','b','c'};//字符数组
opsw.write(ch);
opsw.write(ch,0,2);//写入字符数组的一部分
opsw.flush();//刷新
opsw.close();//释放资源
字符流读数据
InputStreamReader
FileReader:用法与InputStreamReader类似,但遇见编码还是用InputStreamReader
InputStreamReader ipsr = new InputStreamReader(new FileInputStream("IOTest.txt"));
char[] chars = new char[1024];
int len;
while ((len= ipsr.read(chars))!=-1){
System.out.println(new String(chars,0,len));//
}
ipsr.close();
文件的复制
FileReader fr = new FileReader("IOTest.txt");//复制地址
FileWriter fw = new FileWriter("test.txt");//目标地址
char[] chars = new char[1024];
int len;
while ((len=fr.read(chars))!=-1){
fw.write(len);
fw.flush();
}
fw.close();
fr.close();
字符缓冲流
BufferedReader:(字符缓冲流读数据):用法类似
BufferedReader reader = new BufferedReader(new FileReader("IOTest.txt"));
char[] chars = new char[1024];
int len;
while ((len=reader.read(chars))!=-1){
System.out.println(new String(chars,0,len));
}
reader.close();
BufferedWriter:(字符缓冲流写数据):用法类似
BufferedWriter writer = new BufferedWriter(new FileWriter("test.txt"));
writer.write("java");
writer.flush();
writer.close();
字符缓冲流特有功能
BufferedReader reader = new BufferedReader(new FileReader("IOTest.txt"));
BufferedWriter writer = new BufferedWriter(new FileWriter("test.txt"));
String str;
while ((str = reader.readLine()) != null) {//读取一行,不换行
writer.write(str);
writer.newline();//创建新的一行
writer.flush();
}
reader.close();
writer.close();



