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 ...
随机推荐
- 第2章 C++编程入门
C++中的数据分为常量和变量. 2.1常量(Constants) 顾名思义,常量的值在程序中不能改变 Type of constant(常量数据类型) | integer:整型 | floating- ...
- E104-BT01超低功耗蓝牙模块BLE4.0协议的片载系统解决方案
1.E104-BT01简介 E104-BT01 是亿佰特设计生产的一款小体积的蓝牙模块,贴片型(引脚间距 1.27mm),自带高性能 PCB 板载天线.支持 BluetoothV4.0 标准,简单配置 ...
- 某CMS后台通杀getshell
此CMS是基于thinkphp框架二次开发的,目前有thinkphp5,以及thinkphp6两种版本.这些漏洞挖掘出来的时候已经在cnvd被提交过了.但是网上并没有漏洞文章.避免风险这里只分享思路. ...
- Error: $controller:ctrlreg A controller with this name is not registered.
The controller with the name 'SomeController' is not registered.名称为'SomeController'的控制器没注册 : Descrip ...
- Python实现简繁体转换,真的玩得花
大家好鸭, 我是小熊猫 直接开搞!!! 1.opencc-python 首先介绍opencc中的Python实现库,它具有安装简单,翻译准确,使用方便等优点.对于我们日常的需求完全能够胜任. 1.1安 ...
- 复制docker容器中的nginx某个文件到linux中
前提:docker容器中的nginx要开启
- EEPROM存储电路(M24C64芯片)
电可擦写可编程只读存储器(Electrically Erasable Programmable Read-only Memory, EEPROM)实现掉电情况下保存数据,设计温湿度变送器采用M24C6 ...
- ArrayList源码深度剖析,从最基本的扩容原理,到魔幻的迭代器和fast-fail机制,你想要的这都有!!!
ArrayList源码深度剖析 本篇文章主要跟大家分析一下ArrayList的源代码.阅读本文你首先得对ArrayList有一些基本的了解,至少使用过它.如果你对ArrayList的一些基本使用还不太 ...
- springboot2+jpa+oracle实例
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht ...
- 如何用天气预警API接口进行快速开发
天气预警能够指导人们出行.同一种类的气象灾害预警信号级别不同,对应的防御措施也不尽相同,人们通过气象灾害预警信号,合理安排出行.公众要提高防范意识,养成接收和关注预警信息的习惯,了解预警信息背后的意义 ...