IO 一直让我很困惑,下面我就IO 读取文件总体 总结下
InputStream 文件读:
//字节流读入 DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream("D:/workspace/myspring/src/FormattedMemoryInput.java"))); while(in.available()!=0){ System.out.print((char)in.readByte()); }
//字符流读入 BufferedReader in = new BufferedReader (new FileReader("D:/workspace/myspring/src/FormattedMemoryInput.java")); String s ; StringBuilder sb = new StringBuilder(); while ((s=in.readLine())!=null){ sb.append(s+"\n"); } return sb.toString();
都能达到相同效果;
//将字节流转换成字符流读取 DataInputStream in5 =new DataInputStream( new BufferedInputStream(new FileInputStream("D:/workspace/myspring/src/FormattedMemoryInput.java"))); BufferedReader in5br =new BufferedReader(new InputStreamReader(in5)); StringBuilder s = new StringBuilder(); String k ; while((k=in5br.readLine())!=null){ s.append(k+"\n"); } in5br.close(); in5.close(); System.out.println(s.toString());
//将字符流转换成字节流读取 BufferedReader in = new BufferedReader (new FileReader("D:/workspace/myspring/src/BufferedInputFile.java")); String s ; StringBuilder sb = new StringBuilder(); while ((s=in.readLine())!=null){ sb.append(s+"\n"); } DataInputStream in3 =new DataInputStream(new ByteArrayInputStream(sb.toString().getBytes())); while (in3.available()!=0){ System.out.print((char)in3.readByte()); }
文件输出:
字符流输出:
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.StringReader; public class BasicFileOutPut { static String file="D:/workspace/myspring/src/BasicFileOutPut.out"; public static void main(String agrs [] ) throws IOException{ BufferedReader in = new BufferedReader(new StringReader(BufferedInputFile.read("D:/workspace/myspring/src/BasicFileOutPut.java"))); PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file))); int lineCount =1; String s ; while ((s=in.readLine())!=null){ out.println(lineCount++ +":"+s); } out.close(); System.out.println(BufferedInputFile.read(file)); } }