package cd.itcast.bufferinputstream;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException; /**
* 缓冲输入字符流
* @author Administrator
*
*/
public class Demo1 {
public static void main(String[] args) throws IOException {
//找到目标
File file = new File("E:\\a.txt");
//建立输入通道
FileInputStream fileInputStream = new FileInputStream(file);
//建立缓冲输入字节流
//fileInputStream具有读写文件的能力,bufferiInputStream没有。
BufferedInputStream bufferInputStream = new BufferedInputStream(fileInputStream);
//读取文件
int content=0;
while ((content = bufferInputStream.read())!=-1) {
System.out.print((char)content);
}
//关闭资源,关闭bufferInputStream,就是关闭fileInputStream
bufferInputStream.close();
}
}

2、

package cd.itcast.bufferinputstream;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 1、使用BufferedOutputStream写数据的时候,他的write()方法是先把数据写到它内部维护的字节数组中。
* 2、使用BufferedOutputStream写数据的时候,如果需要把数据写到硬盘上,需要调用flush()方法,或者是close()方法,或者是内部维护的字节数组已经填满的时候。
*/
public class BufferOutputStream {
public static void main(String[] args) throws IOException {
//找到目标文件
File file = new File("E:\\a.txt");
//建立数据通道
FileOutputStream fileOutputStream = new FileOutputStream(file);
//建立缓冲输出字节流对象
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
//数据写出,此时写到内存里了
bufferedOutputStream.write("hello word!".getBytes());
//写出数据到硬盘bufferedOutputStream.flush()或者Close();
bufferedOutputStream.close();
}
}

3、复制图片

package cd.itcast.bufferinputstream;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class CopyTu {
public static void main(String[] args) throws IOException {
File infile = new File("E:\\图片\\1.jpg");
File desFile = new File("E:\\1.jpg"); FileInputStream fileInputStream = new FileInputStream(infile);
FileOutputStream fileOutputStream = new FileOutputStream(desFile); BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
//read()中如果传入了缓冲数组,则内容是存储到数组中的,返回值是存储到数组中的字节个数。
//read()如果没有传入缓冲数组,那么返回值是读取到的内容。
int content=0;
//边读边写
while ((content=bufferedInputStream.read())!=-1) {
bufferedOutputStream.write(content);
//bufferedOutputStream.flush();不要刷,写一个字节,一刷,这样就没意义啦
}
/*执行close()的时候,执行了flush().
* public void close() throws IOException {
try {
flush();
} catch (IOException ignored) {
}
out.close();
}*/
bufferedOutputStream.close();
bufferedInputStream.close();
}
}

BufferedInputSream和BufferedOutputSream,,,的更多相关文章

  1. Java学习日记之 Java-IO流

    Java中的IO流在处理上分为字节流和字符流.字节流和字符流的区别 : 1.字节流读取的时候,读到一个字节就返回一个字节:  字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8 ...

  2. 第八章I/O

    一.File的使用 ①.new File(String fileName);的意义 ②.获取当前文件夹下的所有文件 ③.获取当前文件夹时候过滤掉不许要的文件夹 ④.创建File文件,了解mkDir() ...

  3. JDK源码阅读(1)_简介+ java.io

    1.简介 针对这一个版块,主要做一个java8的源码阅读笔记.会对一些在javaWeb中应用比较广泛的java包进行精读,附上注释.对于容易混淆的知识点给出相应的对比分析. 精读的源码顺序主要如下: ...

  4. 100道Java基础面试题收集整理(附答案)

    不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...

  5. 100道Java基础面试题

    1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Client/Server),客户端/服务端,桌面应用程序 2.你所知道网络协议有那些? H ...

  6. Java面试题收集以及参考答案(100道)

    不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...

  7. javaIO--数据流之IO流与字节流

    0.IO流 0.1.IO(Input Output)流的概念 Java中将不同设备之间的数据传输抽象为“流”:Stream设备指的是:磁盘上的文件,网络连接,另一个主机等等 按流向分:输入流,输出流: ...

  8. java_缓冲流(字节输入流)

    /** * java.iko.BufferedInputStream extends InputStream * BufferedInputStream:字节缓冲输入流 * 构造方法: * Buffe ...

  9. java_缓冲流(字节输出流)

    缓冲流分为: 字节缓冲流:BufferedIntputSream(字节缓冲输出流),BufferdOutputStream(字节缓冲输入流) 字符缓冲流:BufferedReader(字符输入缓冲流) ...

随机推荐

  1. 【原】基于64位Centos6.2的mcrouter使用简介

    此文转载必须注明原文地址,请尊重作者的劳动成果!  http://www.cnblogs.com/lyongerr/p/5040071.html 目录 文档控制... 2 1 mcrouter简介.. ...

  2. github里的gist是什么意思

    在有关github的客户端中经常遇到gist这个词,如Gists->My Gists,Public Gists. 字典里解释gist为(发言.谈话或文章的)主旨,要点.百度百科的解释太恶心,我不 ...

  3. Linux系统自启动脚本

    只需编辑/etc/init.d/rc.local文件,在最后加上你的脚本即可.比如:我已经编写了一个脚本shell.sh,存放在/home/mars704/Desktop/ 下面在终端输入 gedit ...

  4. 【LeetCode】18. 4Sum

    题目: 思路:这题和15题很像,外层再加一个循环稍作修改即可 public class Solution { public List<List<Integer>> fourSu ...

  5. Android学习笔记之AndroidManifest.xml文件解析

    一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activiti ...

  6. Windows Server 2012下安装Hyper-V虚拟机

    Windows Server 2012下安装Hyper-V虚拟机 Win server 2012系统中Hyper-V 性能进一步提高,广大爱好者都尝试体验它,可是有不少朋友无法正确安装虚拟机,尽管在网 ...

  7. Android书籍资源汇总

    之前一直在Linux下使用C++做服务器端的开发工作,对Android关于移动方面的开发了解较少,现将android开发方面的书籍与资源整理如下,方便后续的查阅. 19本Android开发书籍 7本A ...

  8. oracle11g空表不能导出记录

    select 'alter table '||table_name||' allocate extent(size 64k);' from tabs t where not exists (selec ...

  9. ASP.NET的SEO:Linq to XML---网站地图和RSS Feed

    本系列目录网站地图的作用是让搜索引擎尽快的,更多的收录网站的各个网页.    这里我们首先要明白一个基本的原理,搜索引擎的爬行方式.整个互联网就像一张纵横交错的"网":网的各个节点 ...

  10. IE6-IE9兼容性问题列表及解决办法总结

    IE6-IE9兼容性问题列表及解决办法总结 概述 第一章:HTML. 3 第一节:IE7-IE8更新... 31.如果缺少结束标记的 P 元素后跟 TABLE.FORM.NOFRAMES 或 NOSC ...