1(2)IO流---字节流
一.分类
- 字节流(不适用于文本)
- InputStream
- OutputStream
- 字符流
- Reader
- Writer
二.字节流
1.概述
InputStream
字节输入流,是被读的,抽象类,不能创建对象
FileInputStream:针对文件数据操作
DataInputSream:转换流,可传基本数据类型
BufferedInputStream:缓冲流,常用
ObjectInputStream:对象流
OutputStream
字节输出流,是被写的,抽象类,不能创建对象
PrintStream:单向的输出流
2.字节流----文件流
文件流FileInputStream,字节流不适合文本(原因是10个字节为单位读),但适合图片
//1.创建对象
FileInputStream fis = new FileInputStream("src/test.txt"); //2.读文件,一个字节一个字节读
int n=fis.read();
System.out.println((byte)n);
n = fis.read();
System.out.println((byte)n);
n = fis.read();
System.out.println((byte)n); //3.读文件,一次读取多个字节
byte []by=new byte[1024];
int m=fis.read(by);//将读取的字节内容保存在buf数组 返回的是读取的字节数
System.out.println(m); //4.是流,所以再次读取时读不到数据,返回-1
m=fis.read(by);
System.out.println(m); //5.完整读取一个文本
byte []buf=new byte[10];//10个字节为单位读取。
int len=-1;
while((len=fis.read(buf))!=-1){
String result =new String(buf,0,len);
System.out.print(result);
}
fis.close();
文件流的小练习:把图片复制到桌面
//1.找到源和目标位置
FileInputStream fis=new FileInputStream("图片原目录");
FileOutputStream fos=new FileOutputStream("桌面目录"); //2.读取文件媒介
byte []buf=new byte[1024];
int len=-1; //3.读取并写入文件
while((len=fis.read(buf)) != -1) {
fos.write(buf, 0, len);
} //4.写入后重要的步骤
fos.flush();
fos.close();
fis.close();
文件流的小练习2:写入东西到txt文件
//文件字节输出流,创建对象并写入txt文档
//1.创建对象,追加或者覆盖
FileOutputStream fos=new FileOutStream("src/test.txt",true);
FileOutputStream fos=new FileOutStream("src/test.txt"); //2.写入
fos.write(97);//写入a
fos.write("你好".getByte());//将字符串转化为字节数组 //3.收尾
fos.flush();
fos.close();
3.字节流-----缓冲流
具有缓冲区,减少对硬盘的读写次数,在这里首先接触到装饰者模式,以后还会遇到更多
- 写入缓冲字节流
//1.创建缓冲输出流 装饰者模式 设计模式
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("src/buffer.txt")); bos.write("你好,我这里使用了缓冲流进行写入内容!!".getBytes());
bos.flush();
bos.close();
- 读取缓冲字节流
//2.创建缓冲输入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("src/buffer.txt"));
byte[] buf = new byte[1024];
int len = -1;
while((len=bis.read(buf)) != -1 ) {
System.out.print(new String(buf, 0, len));
}
bis.close();
1(2)IO流---字节流的更多相关文章
- JAVA之IO流(字节流)
输入和输出 JAVA的流分为输入流和输出流两部分, 输入流:InputStream或者Reader:从文件中读到程序中: 输出流:OutputStream或者Writer:从程序中输出到文件中: Re ...
- IO流(字节流,字符流,缓冲流)
一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流 这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图: 二:字符字节 ...
- Java之IO流(字节流,字符流)
IO流和Properties IO流 IO流是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键, 因而所有 I/O 的主体实际上是内置在操作系统中的.单独的 ...
- Java IO流-字节流
2017-11-05 17:48:17 Java中的IO流按数据类型分类分为两种,一是字节流,二是字符流.字符流的出现是为了简化文本数据的读入和写出操作. 如果操作的文件是文本文件,那么使用字符流会大 ...
- Java—IO流 字节流
IO流(输入流.输出流),又分为字节流.字符流. 流是磁盘或其它外围设备中存储的数据的源点或终点. 输入流:程序从输入流读取数据源.数据源包括外界(键盘.文件.网络…),即是将数据源读入到程序的通信通 ...
- IO流——字节流、字符流
在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 流的分类 ① 流按其流向分为“输入流”和“输出 ...
- JAVA基础——IO流字节流
在Java中把不同的输入输出源(键盘.文件.网路连接)抽象表述为“流”. 1.输入流.输出流 .字节输入流通过FileInputStream和来操作 字节输出流通过FileOutputStream来操 ...
- IO流——字节流
文件输出流 FileOutputStream:文件输出流是用于将数据写入 File,每次运行,都会覆盖之前文件中的数据 FileOutputStream(File file):创建一个向指定 File ...
- java IO流——字节流
字节流主要操作byte类型数据,以byte数组为准,主要操作类有InputStream(字节输入流).OutputSteam(字节输出流)由于IputStream和OutputStream都是抽象类, ...
随机推荐
- 安装vue 教程
安装教程:https://www.cnblogs.com/zhaomeizi/p/8483597.html
- java-猜数字
package com.jijy.circle; import java.util.Scanner; import java.util.Random; public class demo5 { pub ...
- history program(language)
1950与1960年代 有三个现代编程语言于1950年代被设计出来,这三者所衍生的语言直到今日仍旧广泛地被采用: Fortran (1955),名称取自"FORmula TRANslator ...
- 软件151 王楚博 struts
一.下载Struts 建立web项目,给项目添加外部引用包(project-properties-Java Build Path-Add External Jars...).添加的包有:commons ...
- const修饰指针+volatile +restrict
const这块的难点 const修饰指针有以下的几种形式 ,不同的形式 它的意义不一样. 形式1: int a=23: const int *p=&a: a是int型,&a是int * ...
- spring整合redis(哨兵模式)
首先服务器搭建哨兵模式(我这里使用的是Windows8系统),感谢两位博主,少走不少弯路,在此给出链接:服务器哨兵模式搭建和整合哨兵模式 什么一些介绍就不介绍了,可以看一下连接,比较详细,初次接触,当 ...
- JS案例六_2:省市级联动
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- js中的一些简单问题
1.JavaScript的组成: ECMAScript标准--基本的语法和对象 DOM:Document Object Model 文档对象模型 BOM:Broswer Object Model 浏览 ...
- java前端跨域请求后台接口
response.setHeader("Access-Control-Allow-Origin", "*"); /* 星号表示所有的域都可以接受, */ res ...
- pytest自动化3:fixture之conftest.py实现setup
出处:https://www.cnblogs.com/yoyoketang/p/9390073.html 前言: 前面一篇讲到用例加setup和teardown可以实现在测试用例之前或之后加入一些操作 ...