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. NYOJ 51-管闲事的小明

    点击打开链接 管闲事的小明 时间限制:4000 ms  |  内存限制:65535 KB 难度:2 描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数 ...

  2. 常用正规js

    1,得到网页上的链接地址: string matchString = @"<a[^>]+href=\s*(?:'(?<href>[^']+)'|"" ...

  3. php array函数实例应用

    array_diff_key() array_diff_assoc() array_count_values() array_combine() array_column() array_chunk( ...

  4. Loadrunner性能指标分析

    Transactions(用户事务分析)----用户事务分析是站在用户角度进行的基础性能分析. Transation Sunmmary(事务综述)----对事务进行综合分析是性能分析的第一步,通过分析 ...

  5. 《FPGA全程进阶---实战演练》第二十一章 电源常用类型:LDO和 DCDC

    高速电路中的电源设计 高速电路中的电源设计大概分为两种,一种是集总式架构,一种是分布式架构.集总式架构就是由一个电源输入,然后生成多种所需要的电压.如图1所示.这种架构会增加多个DC/DC模块,这样成 ...

  6. Django中级篇之模板语言

    模板 一.引用变量 模版的创建过程,对于模版,其实就是读取模版(其中嵌套着模版标签),然后将 Model 中获取的数据插入到模版中,最后将信息返回给用户. {{ xxx }} 二.标签 用{%  %} ...

  7. ionic cordova file download and load

    1.先添加插件 cordova plugin add org.apache.cordova.file cordova plugin add org.apache.cordova.file-transf ...

  8. C# 加密算法

     public static class Common     {         #region MD5加密         /// <summary>            /// M ...

  9. [转]常用电器认证标志 && 手机频段

    一个手电筒就可以算得上一件家用电器的时代已经过去了,现在,谁家里不得有个几件?大家肯定看到了这些电器上贴的各种各样的认证标志了吧?看的人是眼花缭乱,目不暇接,更有一些是“洋认证”.下面罗列出一些常见的 ...

  10. Loadrunner:安装LR11.0破解步骤及License

    破解步骤: 1.关闭LR相关程序 2.运行LicenseDelete程序,清除LR原来的License 3.将lm70.dll和mlr5lprg.dll这两个文件复制并粘贴到LR安装目录下的bin文件 ...