分类:
字符输入流: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();