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. Linux离线包管理器RPM

    Linux离线包管理器RPM RPM 是RedHat Package Manager(RedHat软件包管理工具). 1.rpm常用参数介绍 查看rpm是否安装 rpm -q rpm包名 [root@ ...

  2. Oracle账户被锁(the account is locked)

    问题: 安装好Oracle之后用scott登录报错:ERROR:ORA-28000:the account is locked 解决方案: Win+R打开命令行输入:sqlplus 使用system账 ...

  3. Java创建数据库新建表及初始化表

    方法一 package com.crt.openapi; import java.sql.DriverManager;import java.sql.ResultSet;import java.io. ...

  4. SAP Drag or drop tree

    1 *&---------------------------------------------------------------------* 2 *& Report RSDEM ...

  5. ES5的继承和ES6的继承有什么区别?让Babel来告诉你

    如果以前问我ES5的继承和ES6的继承有什么区别,我一定会自信的说没有区别,不过是语法糖而已,充其量也就是写法有区别,但是现在我会假装思考一下,然后说虽然只是语法糖,但也是有点小区别的,那么具体有什么 ...

  6. C++20 以 Bazel & Clang 开始

    C++20 如何以 Bazel & Clang 进行构建呢? 本文将介绍: Bazel 构建系统的安装 LLVM 编译系统的安装 Clang is an "LLVM native&q ...

  7. 【最全】CSS盒子(div)水平垂直居中居然还有这种方式

    最全的CSS盒子(div)水平垂直居中布局,对CSS 布局掌握程度决定你在 Web 开发中的开发页面速度. 相对于屏幕 方法一:利用定位 <div class="box"&g ...

  8. React中useEffect的简单使用

    学习hooks 在 React 的世界中, 组件有函数组件和类组件 UI 组件我们可以使用函数,用函数组件来展示 UI. 而对于容器组件,函数组件就显得无能为力. 我们依赖于类组件来获取数据,处理数据 ...

  9. git fetch和git pull对比

    情景重现 你:面试官您好,我是xxx,毕业于xxx学校,工作xxx年,精通各种git命令. 面试官:您好您好,我问个常见的问题考察一下您的技术水平哈.请问,git pull和git fetch有什么区 ...

  10. .net6与英雄联盟邂逅之——根据官方LCU API制作游戏助手

    看了网上很多自己开发的英雄联盟的小助手工具,当时苦于没有api,自己也想做一个.后来发现了其实拳头本身就提供了LCU API在客户端运行的时候会暴露出来. 现在我们就来了解下工具的实现. 查询数据:h ...