字符流
FileReader
package character; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class FileReaderDemo { public static void main(String[] args) { // TODO Auto-generated method stub File file = new File("test.txt"); try { FileReader fr = new FileReader(file); char[] content; content = new char[512]; fr.read(content); fr.close(); System.out.println(content); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
FIleWriter
package character; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class FileWriterDemo { public static void main(String[] args) { // TODO Auto-generated method stub File file = new File("test.txt"); try { FileWriter fw = new FileWriter(file); String str = "Hello World"; fw.write(str); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
~和字节流操作差不多
FileWriter写文件时先写入缓冲区,所以如果没有close(),内容未写入,如果不写close(),需要有flush()。
缓冲流
BUfferedReader缓冲输入流
package buffered; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class BufferedREaderDemo { public static void main(String[] args) { File file = new File("test.txt"); FileReader fr; try { fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String str = br.readLine(); while(str!=null) { //输出所有文本 System.out.println(str); str = br.readLine(); } fr.close(); br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
转换流 InputStreamReader,OutputStreamWriter
package buffered; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BufferedReaderDemo2 { public static void main(String[] args) { // 键盘输入 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //转换流 try { System.out.println(br.readLine()); //输出 } catch (IOException e) { e.printStackTrace(); } //反复输入 try { String str = br.readLine(); while(str!=null) { System.out.println(str); str= br.readLine(); } } catch (IOException e) { e.printStackTrace(); } } }
BufferedWriter缓冲输出流
输出的数据先存入缓冲区中
写入:
package buffered; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class BufferWriterDemo { public static void main(String[] args) { // 写入一首诗 String[] str = {"我是小妖怪 ,逍遥又自在","杀人不眨眼, 吃人不放盐","一口七八个, 肚子要撑破","茅房去拉屎, 想起忘带纸"}; File file = new File("test.txt"); FileWriter fw; try { fw = new FileWriter(file); BufferedWriter bw = new BufferedWriter(fw); for(int i=0;i<str.length;i++) { bw.write(str[i]); bw.write(" "); } bw.close(); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
全是代码~