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. multi函数

    def multi(*a): sum = 1 for i in a: sum = sum *i return sum 若干个参数   百度了一下

  2. vscode源码编译运行打包使其由英文变为中文

    vscode默认是英文,如果你想让其变为中文,可参考这个链接:https://blog.csdn.net/testcs_dn/article/details/75070415 最近发现一个很奇怪的问题 ...

  3. [BZOJ 3709] Bohater

    Description 在一款电脑游戏中,你需要打败n只怪物(从1到n编号).为了打败第i只怪物,你需要消耗d[i]点生命值,但怪物死后会掉落血药,使你恢复a[i]点生命值.任何时候你的生命值都不能降 ...

  4. pip install报错Can't roll back cryptography; was not uninstalled

    当使用pip install或者pip install --upgrade报错 Can't roll back cryptography; was not uninstalled 可以进行以下的尝试: ...

  5. sublime text3 的汉化

    仅是记录自己的处理过程,以防遗忘: 感谢作者:https://www.jianshu.com/p/ecc241f22ed5

  6. Kano模型告诉你“是不是只要企业努力的提高产品或服务质量,顾客满意度就一定会提高吗?”

    在 PO在敏捷需求下要遵守哪6条重要原则?   中讲到探索和交付两大阶段的6个原则 其中在原则[做有价值的需求]中讲了两个方法:BSA分析和产品Backlog 其中BSA分析是我在产品规划阶段常使用的 ...

  7. 【php增删改查实例】第二十四节 - 文件上传在项目中的具体应用

    文件上传在项目中,一般有两个用武之地,分别为设置用户的头像和上传附件.本节我们演示如果进行用户头像的上传. 因为一个用户单独并且唯一对应了一个头像,是一对一的关系,所以我们需要去给tm_users表添 ...

  8. Item 16: 让const成员函数做到线程安全

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果我们在数学领域里工作,我们可能会发现用一个类来表示多项式会很方 ...

  9. Windows下如何更新 CodeBlocks 中的 MinGW 使其支持新版本 C++

    转自:http://blog.csdn.net/wtfmonking/article/details/17487705 虽然 CodeBlocks16.01 已经是最新版了,但其中的 MinGW 仍然 ...

  10. hdu3790 dijkstra+堆优化

    题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=3790 分析:dijkstra没有优化的话,复杂度是n*n,优化后的复杂度是m*logm,n是顶点数,m ...