在《java之IO流学习(二)》中已经对高效的读写文本文件有了了解,但是硬盘上不光只有文本文件是不是,什么图片啊,视频啊,以及其他一系列认识的不认识的文件,我们如何读写呢,java毕竟是个大神啊,人脉关系比较广,这点事找两个哥们来处理一下还是轻而易举的。这两个哥们就是传说中的InputStream和OutputStream。
这两个哥们也生了好多崽,操作文件嘛,当然就有FileInputStream和FileOutputStream了,如何更加的高效呢,包装一下吧,装个逼,BufferedInputStream和BufferedOutputStream。
如何拷贝视频文件呢,代码如下:
public static void main(String[] args) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("d:\\movie.mp4"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:\\movie_copy.mp4"));
byte[] buff = new byte[1024];
int num = 0;
while((num=bis.read(buff))!=-1){
bos.write(buff,0,num);
}
bis.close();
bos.close();
}
在以往的代码中,大家可以看到文件都是在磁盘中的,那么要是我是从键盘输入字符的,怎么读取键盘输入呢,这个时候就要用到另外一个对象了,System.in,它本身也是InputStream,这么一来就好弄了,比如说我要输一行,打印一行,咋搞呢:
public static void main(String[] args) throws IOException {
BufferedInputStream bis = new BufferedInputStream(System.in);
byte[] buff = new byte[1024];
int num = 0;
while((num=bis.read(buff))!=-1){
System.out.print(new String(buff,0,num));
}
bis.close();
}