Java中字节流的总结及代码练习
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中字节流的总结及代码练习的更多相关文章
- Java中字节流和字符流的比较(转)
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操 ...
- 1.JAVA中使用JNI调用C++代码学习笔记
Java 之JNI编程1.什么是JNI? JNI:(Java Natibe Inetrface)缩写. 2.为什么要学习JNI? Java 是跨平台的语言,但是在有些时候仍然是有需要调用本地代码 ( ...
- java中字节流和字符流的区别
流分类: 1.Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先.2.Java的字符流 Reader是所有读取字符串输入流的祖先,而 ...
- java中静态变量,静态代码块,静态方法,实例变量,匿名代码块等的加载顺序
转自:http://blog.csdn.net/mrzhoug/article/details/51581994 一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 1.普 ...
- java中如何测试一段代码的运行时间
一.以毫秒为单位.long startTime = System.currentTimeMillis(); //获取开始时间 doSomething(); //测试的代码段 long endTime ...
- java中字节流与字符流的区别
字节流 在I/O类库中,java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流,它们都是抽象类,不能实例化,数据流中的最小单位是字节,所以叫做字 ...
- Java中字节流和字符流复制文件
字节流和字符流复制文件的过程: 1.建立两个流对象 绑定数据源和目的地 2.遍历出需复制的文件写入复制过后的新文件中(只不过是遍历的时候是区分字节和字符的) 3.访问结束后关闭资源 字节流复制文件: ...
- java中字节流与字符流以及字节流多余字节问题
1.字节流 字节流byte为单位对文件的数据进行写入与读取操作.字节的方式在复制音频图片文件时比较适用,但在对于普通文件的读写上有两大缺陷: 第一,字节流在读取中文字符时,若设定的字节数组长度刚好末尾 ...
- java中分页效果的实现代码
首先是将分页所需的一些个资源 ,抽象出一个javabean对象-PageBean: 先把需要分页的数据或是记录都查询出来 存入一个集合类里如List或是Vector, 然后利用其sublist(int ...
随机推荐
- SQL的语法
SQL的语法 SQL通用语法 SQL语句可以单行或多行书写,以分号(";")结尾. SQL语句可以使用空格或缩进增强可读性. MySQL数据库的SQL语句不区分大小写(建议关键字大 ...
- 开源流程引擎osworkflow、jbpm、activiti、flowable、camunda哪个好?
市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.其中:Jbpm4.Activiti.Flowable.camunda四个框架同宗同源, ...
- 慢到不能忍?别忍了,Ubuntu 21.10 APT 源修改为华为云镜像源
更新记录 2022年4月15日:本文迁移自Panda666原博客,原发布时间:2021年3月29日. 2022年4月15日:将源改为华为云,华为云更方便.Ubuntu从20.04更新到21.10. 切 ...
- BUUCTF-神秘龙卷风
神秘龙卷风 通过提示知道压缩包密码是四位纯数字,通过爆破得到 得到一串编码 看样子应该是brainfuck编码 flag{e4bbef8bdf9743f8bf5b727a9f6332a8}
- 《ECMAScript 6 入门》【三、字符串的扩展】(持续更新中……)
前言: 本篇介绍 ES6 对字符串的改造和增强.一.字符的 Unicode 表示法 字符的 Unicode 码点必须在\u0000~\uFFFF之间,\uxxxx形式表示一个字符,其中xxxx表示字符 ...
- String-StringBuffer-StringBuilder,Comparable-comparator
String 1.String是final类,不可被继承 2.内部是value[]的数组 private final char value[]; 3.不可变字符串 String s1 = " ...
- bat-静默安装并配置mysql(windows版)
mysql版本 mysql-5.6.35-winx64 路径关系 @echo off Setlocal enabledelayedexpansion @REM vscode中自动开启延迟环境变量扩展, ...
- 爬虫(2) - Requests(1) | Requests模块的深度解析
1.Requests 安装与请求方法 requests官方文档:https://docs.python-requests.org/zh_CN/latest/,官方文档不知道为什么挂了,访问不了.我找了 ...
- NC204859 组队
NC204859 组队 题目 题目描述 你的团队中有 \(n\) 个人,每个人有一个能力值 \(a_i\),现在需要选择若干个人组成一个团队去参加比赛,由于比赛的规则限制,一个团队里面任意两个人能力的 ...
- RocketMQ 集群的搭建部署 以及rocketmq-console-ng仪表台的安装部署
在 RocketMQ 主要的组件如下. NameServerNameServer 集群,Topic 的路由注册中心,为客户端根据 Topic 提供路由服务,从而引导客户端向 Broker 发送消息.N ...