等你这些都掌握了,推荐你用nio包中的管道流。
流的套用可以提升读写效率(这种方式只能是同类流的套用,比如字节流套用字节流),还有一种是字符流与字节流互相转换,转换通过一种叫唯橡做“桥转换”的类,比如OutputStreamWriter类。
下面举个最基础的字节流例子:
public void copyFile(String file, String bak) {
BufferedInputStream bis = null
BufferedOutputStream bos = null
try {
byte[] bytes = new byte[1024]
bis = new BufferedInputStream(new FileInputStream(file))//BufferedInputStream会构造一个背部缓冲区数组,将FileInputStream中的数据存放在缓冲区中指宴旁,提升了读祥辩取的性能
bos = new BufferedOutputStream(new FileOutputStream(bak))//同理
int length = bis.read(bytes)
while (length != -1) {
System.out.println("length: " + length)
bos.write(bytes, 0, length)
length = bis.read(bytes)
}
} catch (Exception e) {
e.printStackTrace()
} finally {
try {
bis.close()
bos.close()
} catch (IOException ex) {
ex.printStackTrace()
}
}
}
字符流的用法:
FileReader fr = new FileReader("D:\\test.txt")
BufferedReader br = new BufferedReader(fr)
或者PrintWriter pw = new PrintWriter(new FileWriter("D:\\test.txt"))
...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)