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)); } }