Java中的字节流

在描述字节流时,先知道什么是流

流可以分为:输入流和输出流

输入流和输出流 示意图:

字节流读取内容:二进制,音频,视频

优缺点:可以保证视频音频无损,效率低,没有缓冲区

字节流可以分为:InputStream(字节输入流) 和 OutputStream(字节输出流)

InputStream是所有类字节输入流的超类其下的类有:

FileInputStream(文件输入流),

BufferedInputStream(缓冲字节输入流),

ObjectInputStream(对象字节输入流,它的直接父类是FilterInputStream);

举几个常用类的方法

FileInputStream方法有:

read():从此输入流中读取一个数据字节

read(byte[] b):从此输入流中将最多读b.length个字节的数据读入到一个byte[]数组中,读取正常,返回实际读取的字节数new String(new byte[1024],0,readlen),读到最后一个字节返回-1,有利于提高效率

read(byte[],int off, int len):这个方法可以读取里面部分内容,内容为off到len之间的内容

OutputStream也是顶级父类其下的类有:

FileOutputStream:new FileOutputStream(pathname)创建方式,当写入内容时会自动覆盖原内容

new FileOutputStream(pathname,true)此方式在原来内容上缀加内容,而不会覆盖

BufferedOutputStream,

ObjectOutputStream;

FileOutputStream:将数据写到文件中,如果该文件不存在,则自动创建该文件

FileOutputStream方法有:

write():写入单个字节

write(str.getbytes()):将字符串转成字符数组输出出来 str.getbytes()=byte[] b;

write(str.getbytes(), int off,str.length()):将len字节从位于偏移量 off的指定字节数组写入此文件输出流

字节流的综合练习:将d盘里a.txt文件拷贝到e盘


public static void main(String[] args) {
// TODO Auto-generated method stub
//1.创建文件的输入流
FileInputStream fis=null;
FileOutputStream fos=null;
String pathname="D:\\a.txt";
String pathname1="E:\\a.txt";
try {
fis=new FileInputStream(pathname);//文件的输入流
fos=new FileOutputStream(pathname1);
byte[] b=new byte[1024];
int readlen=0;
while((readlen=fis.read(b))!=-1){
fos.write(b,0,readlen);
}
System.out.println("拷贝成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if(fos!=null){
fos.close();
}
if(fis!=null){
fis.close();
}
} catch (Exception e2) {
// TODO: handle exception
} } }

Java中字节流的总结及代码练习的更多相关文章

  1. Java中字节流和字符流的比较(转)

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

  2. 1.JAVA中使用JNI调用C++代码学习笔记

    Java 之JNI编程1.什么是JNI? JNI:(Java Natibe Inetrface)缩写. 2.为什么要学习JNI?  Java 是跨平台的语言,但是在有些时候仍然是有需要调用本地代码 ( ...

  3. java中字节流和字符流的区别

    流分类: 1.Java的字节流   InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先.2.Java的字符流  Reader是所有读取字符串输入流的祖先,而 ...

  4. java中静态变量,静态代码块,静态方法,实例变量,匿名代码块等的加载顺序

    转自:http://blog.csdn.net/mrzhoug/article/details/51581994 一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 1.普 ...

  5. java中如何测试一段代码的运行时间

    一.以毫秒为单位.long startTime = System.currentTimeMillis(); //获取开始时间 doSomething(); //测试的代码段 long endTime ...

  6. java中字节流与字符流的区别

    字节流 在I/O类库中,java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流,它们都是抽象类,不能实例化,数据流中的最小单位是字节,所以叫做字 ...

  7. Java中字节流和字符流复制文件

    字节流和字符流复制文件的过程: 1.建立两个流对象 绑定数据源和目的地 2.遍历出需复制的文件写入复制过后的新文件中(只不过是遍历的时候是区分字节和字符的) 3.访问结束后关闭资源 字节流复制文件: ...

  8. java中字节流与字符流以及字节流多余字节问题

    1.字节流 字节流byte为单位对文件的数据进行写入与读取操作.字节的方式在复制音频图片文件时比较适用,但在对于普通文件的读写上有两大缺陷: 第一,字节流在读取中文字符时,若设定的字节数组长度刚好末尾 ...

  9. java中分页效果的实现代码

    首先是将分页所需的一些个资源 ,抽象出一个javabean对象-PageBean: 先把需要分页的数据或是记录都查询出来 存入一个集合类里如List或是Vector, 然后利用其sublist(int ...

随机推荐

  1. python:selenium测试登录在chrome中闪退

    问题描述:使用selenium.webdriver时测试网页,进行自动登录测试总是在登录成功时闪退.使用指定驱动器位置的方式chrome也会闪退 1.正常使用chrome驱动打开一个网页,正常访问 f ...

  2. Amazon 消息订阅对接

    亚马逊的api 谁用谁知道...... 除了坑还是坑 头疼一周整出来,分享给铁汁们 amazon 的订阅思维,我只能说外国人脑回路有点长 下面就讲讲具体流程步骤: 第一步: 参照官方教程:设置通知(A ...

  3. 视图模板引擎——Vue【双向绑定】原理剖析

    首先我们来了解一下MVC.MVP.MVMM这三大架构模式在前端角度上的理解. MVC分别是 Model(模型).View(视图).Controller(控制器)三个模块.View(视图层)最主要完成前 ...

  4. ms08-067漏洞复现

    一.环境说明 kali linux 靶机是 XP (xp启动445) 二.nmap扫描主机存在的漏洞 root@kali:~# nmap --script smb-vuln* 192.168.244. ...

  5. python之多进程and多线程

    图文来自互联网 一.什么是进程和线程 (https://jq.qq.com/?_wv=1027&k=rX9CWKg4) 进程是分配资源的最小单位,线程是系统调度的最小单位. 当应用程序运行时最 ...

  6. -bash: /usr/local/maven/apache-maven-3.8.1/bin/mvn: 权限不够

    chmod a+x /usr/local/maven/apache-maven-3.8.1/bin/mvn

  7. 皮尔逊(Pearson)系数矩阵——numpy

    一.原理 注意 专有名词.(例如:极高相关) 二.代码 import numpy as np f = open('../file/Pearson.csv', encoding='utf-8') dat ...

  8. osx系统使用技巧 -- 虚拟机virtualbox

    p.p1 { margin: 0; font: 18px Menlo; color: rgba(255, 255, 255, 1); background-color: rgba(102, 130, ...

  9. 一文解决Vue中实现 Excel下载到本地以及上传Excel

    相信大家在项目中经常会遇到一些上传下载文件的相关功能,本文就Excel的相关功能进行简述: 咱直接看代码: <div class="import-main-content"& ...

  10. 题解 $UVA$ 11825【$Hackers$' $Crackdown$】

    本题的数学模型是:把\(\mathcal{n}\)个集合\(\mathcal{P1,P2,...,Pn}\)分成尽量多组,使得每组中所以集合的并集等于全集.这里集合\(\mathcal{Pi}\)就是 ...