package cn.zhouzhou;

import java.io.FileInputStream;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import javax.management.RuntimeErrorException; /*
* 一、流?
* 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。
* 即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,
* 方便更直观的进行数据操作。
*二、 字节流?
* 先读后写!
* 1.输出流-------程序到文件------OutputStream类!写
* 1.OutputStream 2.加上代表换行!【\r\n】
*
* 2.输入流-------文件到程序-------InputStream类!读
* a.方法 read() 返回值-1 利用while循环 读取文件!int len=0; 返回值!
*
* b.读取字节数组
* byte b[]=new byte[1024];
* int len=0; while((len=a1.read(b))!=-1);
* System.out.println(new String(b,0,len));
* 三、文件复制?
* 方法:
* 1.用InputStream读取,OutputStream写!
* 2.创建数组缓冲!
* byte b[]=new byte[1024*10];
* int len=0;
* while((len=a1.read(b))!=-1);
* {a2.write(b,0,len)}
*
*
*/
public class OutputStreamDemo {
public static void main(String[] args) throws IOException {
run01();//1.输出流 写!OutputStream write();
run02();//2.输入流 读!InputStream read();
run03();//3.读取字节数组 byte [] b=new byte[1024];
copy();// 4.简单的文件复制 异常抛出!
copy01();//5.利用 try catch解决异常
}
//"E:\\老师的代码\\day20\\视屏\\001.mp4" "d:\\game\\001.mp4"
private static void copy01() {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("E:\\老师的代码\\day20\\视屏\\001.mp4");
fos = new FileOutputStream("d:\\game\\001.mp4");
int len = 0; byte []b=new byte[1024*10000]; //复制速度很快!
while ((len = fis.read(b)) != -1)
{
fos.write(b,0,len);
}
}
catch (IOException ex)
{
System.out.println(ex);
throw new RuntimeException("文件复制失败");
}
finally
{
try
{
if (fos != null)
{
fos.close();
}
}
catch (IOException ex)
{
throw new RuntimeException("释放资源失败");
} finally
{
try
{
if (fis != null)
{
fis.close();
}
}
catch (IOException ex) {
throw new RuntimeException("释放资源失败");
}
}
} }
private static void copy() throws IOException {
//想要复制 先读后写!
FileInputStream a1=null;
FileOutputStream a2=null;
a1=new FileInputStream("E:\\老师的代码\\day25\\视屏\\1.mp4");
a2=new FileOutputStream("d:\\game\\1.mp4"); //定义一个数组,缓冲![1024*10]就够了
byte []b=new byte[1024*10000]; //1024*10000 复制速度很快!我的计算机有些卡顿!
int len=0;
while ((len=a1.read(b))!=-1) {
a2.write(b,0,len);
}
a1.close();
a2.close();
}
private static void run03() throws IOException {
FileInputStream a1=new FileInputStream("d:\\game\\aaa.txt");
//创建字节数组, 一般都是1024 读取速度快!
byte [] b=new byte[1024]; int len=0;
while ((len=a1.read(b))!=-1) {
System.out.println(new String(b,0,len)); //new String(b,0,len);数组byte中 字节从0开始,到len 最后一个!
}
a1.close();
}
private static void run02()throws IOException { FileInputStream a1=new FileInputStream("d:\\game\\hello.txt"); //读取文件aaa.txt.文本内容是中文 有时会有乱码!--->以后解决。 int len=0; //读取一个字节的方法 read() 返回值 int int len=0;实在接受read方法的返回值!
while ((len =a1.read())!=-1) { //a1.read() 赋值给len 当len等于-1时,循环结束!
System.out.print((char)len); //使用循环,读取文件,循环结束的条件 read()方法返回值为-1 } a1.close(); //流 有始有终的!
} public static void run01() throws IOException{
//创建文件! 在 内存中写入到硬盘! OutputStream();
FileOutputStream a1=new FileOutputStream("d:\\game\\aaa.txt");
//在文件aaa.TXT中写入东西。 添加97 在字节中是a。 这种写法一次只能添加一个,慢!
a1.write(97);
//创建字节数组 ,写的就快! 一次传递很多个字节!
byte []bytes={98,99,97};
//(bytes,0,1); 获取bytes数组中,角标从0 到2的元素!注意。取不到角标为2的元素! 有头无尾!
a1.write(bytes, 0, 3); System.out.println("b是"+bytes[0]+" c是"+bytes[1]+" a是"+bytes[2]);
//写入 字符串。不能直接写入,需要先转换成bytes!
a1.write("你好\r\n".getBytes()); // \r\n 换行! a1.write("世界!".getBytes());
a1.close(); //输出流打开后,需要关闭! } }

java 中 的 字节流!的更多相关文章

  1. JAVA中的字节流与字符流

    字节流与字符流的区别? 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用 ...

  2. java中OutputStream字节流与字符流InputStreamReader 每一种基本IO流BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWriter,FileInputStream,FileReader,FileWriter,InputStr

    BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWri ...

  3. Java中的字节流,字符流,字节缓冲区,字符缓冲区复制文件

     一:创建方式 1.建立输入(读)对象,并绑定数据源 2.建立输出(写)对象,并绑定目的地 3.将读到的内容遍历出来,然后在通过字符或者字节写入 4.资源访问过后关闭,先创建的后关闭,后创建的先关闭 ...

  4. 理解Java中字符流与字节流的区别

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...

  5. 理解Java中字符流与字节流

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可 ...

  6. 理解Java中字符流与字节流的区别(转)

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...

  7. Java中字节流的总结及代码练习

    Java中的字节流 在描述字节流时,先知道什么是流 流可以分为:输入流和输出流 输入流和输出流 示意图: 字节流读取内容:二进制,音频,视频 优缺点:可以保证视频音频无损,效率低,没有缓冲区 字节流可 ...

  8. Java中的IO流(二)

    上一篇<Java中的IO流(一)>把学习IO流的字符流作了一下记录,本篇把字节流记录一下. 一,Java中的字节流 Java中的字节流的操作方式与字符流的操作方式大致相同,连方法名都是类似 ...

  9. Java中常用IO流之文件流的基本使用姿势

    所谓的 IO 即 Input(输入)/Output(输出) ,当软件与外部资源(例如:网络,数据库,磁盘文件)交互的时候,就会用到 IO 操作.而在IO操作中,最常用的一种方式就是流,也被称为IO流. ...

随机推荐

  1. hyperledge环境安装

    1.安装环境 1)本机安装 前提是已经安装好了docker\docker-compose\go,相应的内容可见 docker-1-环境安装及例子实践 docker官方文档学习-1-Docker for ...

  2. Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程

    [案例]Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 转惜纷飞 今天ML的群中女神和travel在纠结一个恢复的问题,11.2.0.3版本,非归档,大概是rm掉current ...

  3. XSS简介

    xss又叫css,为了与前端的css区别,所以叫xss,即跨站脚本攻击. XSS原理解析 XSS攻击是在网页中嵌入客户端恶意脚本代码,恶意代码一般都是javascript编写的.想要深入研究XSS,必 ...

  4. pyspider环境部署1--python3安装

    爬虫是一个既好玩又好用的东西,接触它有1年多了,了解一些,算不上精通.爬过新闻.微信公众号,主要用pyspider,scrapy也了解过,python2和3都尝试过.公司业务规模不大,基于 pytho ...

  5. 洛谷 P2404 自然数的拆分问题

    题目链接 https://www.luogu.org/problemnew/show/P2404 题目背景 木有...... 题目描述 任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和. ...

  6. 深入源码理解ThreadLocal和ThreadLocalMap

    一.ThreadLoacl的理解: 官方的讲: ThreadLocal是一个本地线程副本变量工具类,主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰 通俗的讲: Thre ...

  7. logistic回归和最大熵

    回顾发现,李航的<统计学习方法>有些章节还没看完,为了记录,特意再水一文. 0 - logistic分布 如<统计学习方法>书上,设X是连续随机变量,X服从logistic分布 ...

  8. 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP

    阅读PDF版本 标题有点标题党了,这里说的容易犯错不是Spring AOP的错,是指使用的时候容易犯错.本文会以一些例子来展开讨论AOP的使用以及使用过程中容易出错的点. 几句话说清楚AOP 有关必要 ...

  9. ASP.NET Core 和 ASP.NET Framework 共享 Identity 身份验证

    .NET Core 已经热了好一阵子,1.1版本发布后其可用性也越来越高,开源.组件化.跨平台.性能优秀.社区活跃等等标签再加上"微软爸爸"主推和大力支持,尽管现阶段对比.net ...

  10. (第十三周)Final阶段成员贡献分

    项目名:食物链教学工具 组名:奋斗吧兄弟 组长:黄兴 组员:李俞寰.杜桥.栾骄阳.王东涵 个人贡献分=基础分+表现分 基础分=5*5*0.5/5=2.5 成员得分如下: 成员 基础分 表现分 个人贡献 ...