java学习笔记IO之字节输入输出流
IO字节输入输出流
OutputStream:字节输出流
该抽象类是所有字节输出流的超类;
定义了一些共性的成员方法:
1.写入一个字节
void write(int b);//b表示字节
2.写入字节数组
void write(byte[] b);//写入一个字节数组
3.写入字节数组的一部分
void write(byte[] b,int off, int len);//off 表示起始索引,len表示写几个
4.刷新输出流,并强制写出所有缓冲的输出字节
void flush();
5.关闭输出流并释放与之有关的所有系统资源
void close();
FileOutputStream :文件字节输出流 extends OutputStream
作用:
把内存中的字节数据,写入到文件中保存
构造方法:
1.创建一个指向File对象表示的文件中写入数据的文件输出流
FileOutputStream(File file);
2.创建一个指定名称的文件中写入数据的输出文件流
FileOutputStream(String name);//通俗说就是个文件路径名
构造方法的作用(也就是他干什么事)
1.会根据构造方法的参数,创建一个文件,如果没有设置追加写的值,文件已经存在的话,就会覆盖
2.创建一个FileOutputStream对象
3.将这个对象指向目的地
IO读写的过程:
java程序--->JVM--->OS(操作系统)--->调用方法进行读写文件
FileOutputStream的使用步骤:
1.创建对象,在构造方法中绑定写入数据的目的地 2.调用对象中的方法write,把数据写入到文件中 3.释放资源
注意:
字节流操作的是字节,所以会直接把字节写入到文件中;
字符流操作的是字符,先会将字符写到内存的缓冲区中,进行转换,转换为字节,再使用底层的字节流将数据写入到文件中
字符输出流使用实例1
1 FileOutputStream fos= new FileOutputStream("a.txt");//a.txt相对路径,相对项目目录下 2 fos.write(97);//写入一个字节 3 fos.close();//关闭流并释放资源
使用实例2:
FileOutputStream fos= new FileOutputStream(new File('a.txt'));//构造方法中传递一个File文件对象 byte[] b="你好".getBytes();//使用String类方法将字符串转换成字节数组 fos.write(b);//写入一个字节数组 fos.close();//关闭资源
追加写与换行
1.追加写:boolean append 参数追加写开关,true是追加,false是不追加,默认是false
FileOutputStream(File file, boolean append); FileOutputStream(String pathname,boolean append);
2.换行
win系统:\r\n
linux:/n
mac:\r
可以使用System类的静态方法动态获取换行符
System.getProperty("line.separator");
InputStream:字节输入流,该抽象类是所有字节输入流的超类
共性的成员方法:
1.读取一个字节并返回,没有字节返回-1
int read();
2.读取一定量的字节数,并存储到字节数组中,返回读取到的字节数
int read(byte[] b);
3.关闭输入流并释放与之有关的所有系统资源
void close();
FileInputStream:文件字节输入流 java.lang.FileInputStream extends InputStream
作用:将文件中的数据,以字节的形式读取到内存中
构造方法:
FileInputStream(File file);//数据源使用File对象 FileInputStream(String pathname);//数据源是一个文件路径
构造方法的作用:
1.创建一个字节输入流的对象
2.会将这个对象指向构造方法中要读取的数据源
FileInputStream使用步骤:
1.创建对象,绑定构造方法中的数据源 2.调用字节输入流的方法read,来读取文件 3.释放资源
FileInputStream读取单字节实例:
1 //创建对象,绑定源文件 2 FileInputStream fis= new FileInputStream("a.txt");//a.txt是存在的 3 //读取单字节。 4 int len=0; 5 while((len=fis.read())!=-1){ 6 System.out.println((char)len);//这里的输出就只能是单字节字符,不能是中文,因为一个中文2个字节,读一个字节就输出会乱码; 7 } 8 //关闭流资源 9 fis.close();
FileInputStream读取字节数组实例:
//创建输入流对象 FileInputStream fis=new FileInputStream(new File("a.txt")); //创建要接收字节的数组 byte[] b= new byte[1024];//这里一般是1024或者其整数倍 int len =0;//这里的len是每次读取的有效个数while((len= fis.read(b))!=-1){System.out.println(new String(b,0,len));//这里使用String类的构造方法,b是字节数组,0是开始索引,len是个数 } /* 注意: 1.字节数组的作用:起到缓冲的作用,一次读取多个字节存在数组中,提高效率,这个字节数组的长度一般定义为1024或者是1024的倍数 2返回值int是什么:每次读取的有效字节个数 */
转载于:https://www.cnblogs.com/xuzhaocai/p/8068436.html
java学习笔记IO之字节输入输出流相关推荐
- 【java学习笔记-io流 文件读写和键盘读写】带缓存的输入/输出流和数据输入/输出流
文章目录 字节流类 带缓存的输入/输出流 BufferedReader与BufferedWriter类 下面的例子程序演示了read()方法,从控制台读取字符直到用户键入"q": ...
- Java学习 第三章 Steam输入输出流
Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...
- 1.6 Java字节流的使用:字节输入/输出流、文件输入/输出流、字节数组输入/输出流
InputStream 是 Java 所有字节输入流类的父类, OutputStream 是 Java 所有字节输出流类的父类, 它们都是一个抽象类,因此继承它们的子类要重新定义父类中的抽象方法. 下 ...
- Java学习笔记---IO操作
一.文件的创建 ------------------------------------------------------- File类,表示磁盘上的文件或目录,可对文件或目录进行操作. * ...
- Java学习笔记-IO
IO IO流概述 可以将数据传输操作,看作一种数据的流动,按照流动的方向分为输入(Input)和输出(Output) java中的IO操作主要指的是java.io包下的一些常用类的使用,通过这些常用类 ...
- JAVA学习笔记—IO流
I/O 框架 流的概念 内存与存储设备之间传输数据的通道 水(相当于数据)-> 传输水的管道(相当于流)-> 脸盆(相当于内存) 生活用水 -> 流入 家庭废水 -> 流出 流 ...
- 小陈java学习笔记IO
文件拷贝 重点: 1.文件在读取的时候,就写到输出流的对象里,达到一边读一边写的效果 2.使用write()的时候,一定要规范使用方法,否则可能会输出无效 节点流和处理流 1.节点流可以从一个特定的数 ...
- java用输入流创建数据文件_java开发知识IO知识之输入输出流以及文件
java开发知识IO知识之输入输出流以及文件 一丶流概述 流十一组有序的数据序列.根据操作的类型,可以分为输入流跟输出流两种. IO(input/output)输入/输出流提供了一条通道程序.可以使用 ...
- java字符流输出流_JAVA语言之IO流字符串输入输出流
本文主要向大家介绍了JAVA语言之IO流字符串输入输出流,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 概述 StringReader 字符输入流 和CharArrayReader类 ...
最新文章
- 数据结构实验——中缀表达式转为后缀表达式
- Word中“节”的作用
- CNN目标检测(二):YOLO
- Linux学习一天一个命令(2)[cd命令]
- java 队列实例_Java 实例 - 队列(Queue)用法
- 电脑键盘练习_用键盘打字怎样才能练得快,有什么窍门没?
- 理解为什么要使用Ioc
- 关于unicode,mbcs,utf8,charset,encoding等相关概念的说明
- 互联通对接阿里云专线开通手册
- 主动学习、纯半监督学习与直推学习
- 四,AXI总线协议解析
- python 局域网传文件_Python+pyftpdlib实现局域网文件互传代码示例
- Android手机玩8086汇编
- UNIX/Linux的传奇历史
- 国内网通、电信代理服务器地址
- 「模拟8.19 A嚎叫..(set) B主仆..(DFS) C征程..(DP+堆优化)」
- java计算机毕业设计网课系统源码+系统+数据库+lw文档+mybatis+运行部署
- Ubuntu安装ClickHouse
- 光流传感器不是一个到手就能用的PIX外设
- 大学英语四六级作文模板