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

 FileOutputStream  fos= new FileOutputStream("a.txt");//a.txt相对路径,相对项目目录下
fos.write(97);//写入一个字节
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读取单字节实例:

 //创建对象,绑定源文件
FileInputStream fis= new FileInputStream("a.txt");//a.txt是存在的
//读取单字节。
int len=0;
while((len=fis.read())!=-1){
System.out.println((char)len);//这里的输出就只能是单字节字符,不能是中文,因为一个中文2个字节,读一个字节就输出会乱码;
}
//关闭流资源
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是什么:每次读取的有效字节个数
*/

  

java学习笔记IO之字节输入输出流的更多相关文章

  1. java开发知识IO知识之输入输出流以及文件

    目录 java开发知识IO知识之输入输出流以及文件 一丶流概述 二丶输入流讲解 InputStream类. 1. 输入流以及类层次结构 2.文件操作.使用输入流读取 三丶输出流 OutputStrea ...

  2. java学习笔记--IO流

    第十二章大纲: I/O input/output 输入/输出 一.创建文件,借助File类来实现 file.createNewFile() : 创建文件 file.exists() : 判断文件是否存 ...

  3. Java 学习笔记 IO流与File操作

    可能你只想简单的使用,暂时不想了解太多的知识,那么请看这里,了解一下如何读文件,写文件 读文件示例代码 File file = new File("D:\\test\\t.txt" ...

  4. IO流 - 字节输入输出流,文件的复制

    IO流 I:input - 输入(读取),eg:把硬盘的内容读取到内存 O: output - 输出(写入) eg:把内存中的东西写入硬盘保存 流:数字(字符/字节) 一般1个字符=2Byte,1By ...

  5. Java学习记录:文件的输入输出流

    Java中的输入.输出流中可以用于文件的读写,拷贝. 由于文件都是由字节组成的,可以将文件中的内容以字节的方式读取出来. 输入流还可以直接转换为图片来使用.其实ImageIcon提供了方法可以直接打开 ...

  6. Java学习笔记-IO

    IO(Input Output)流,用来处理设备之间的数据传输 IO IO概述 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流与字符流 流按流向 ...

  7. java学习笔记 --- IO(3)

    1.FileReader:读取字符流,默认GBK public class CharStreamDemo { public static void main(String[] args) throws ...

  8. java学习笔记 --- IO(2)

    IO流的分类:  流向:  输入流  读取数据  输出流 写出数据  数据类型: 字节流 字节输入流  读取数据 InputStream 字节输出流  写出数据 OutputStream 字符流 字符 ...

  9. java学习笔记IO之File类

    File类总结 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times } p.p2 { margin: 0.0px 0.0px 0.0p ...

随机推荐

  1. 暑假练习赛 007 E - Pairs

    E - Pairs Description standard input/outputStatements In the secret book of ACM, it’s said: “Glory f ...

  2. Linux系列教程(十二)——Linux软件包管理之yum在线管理

    上一篇博客我们介绍了rpm包管理之rpm命令管理,我们发现在使用rpm命令手动安装rpm包的时候,会发现安装遇到到的依赖让你痛不欲生,安装一个rpm时会要先先安装某个依赖的rpm,而安装这个依赖的rp ...

  3. KICKSTART无人值守安装

    1.1 环境说明 [root@test ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@test ~]# uname -r - ...

  4. 【G彩娱乐网】作为一名程序员,我应该如何选购一台电脑?

    G彩娱乐网说到程序员专用电脑,那肯定是苹果电脑.优点有很多,比如白平衡特别准.酷炫的黑科技.特别方便的软件等显而易见的优势:也有能够增加提案通过率.专注工作提高工作效率这样的玄学buff. 但是!并不 ...

  5. 面试题:判断连个字符串是否互为回环变位(Circular Rotaion)

    题干:   如果字符串 s 中的字符循环移动任意位置之后能够得到另一个字符串 t,那么 s 就被称为 t 的回环变位(circular rotation).   例如,ACTGACG 就是 TGACG ...

  6. java工程师学习线路图

  7. Java多线程由易到难

    线程可以驱动任务,因此你需要一种描述任务的方式,这可以由Runnable接口来提供.要想定义任务,只需实现Runnable接口并编写run方法,使得该任务可以执行你的命令. public class ...

  8. 数据库连接(Oracle/sqlServer增、删、改、查)

    一.把数据库包导入项目中,并且Build path(oracle例如ojdbc6.jar;sqlServer例如sqljdbc.jar) 二.开始操作 1.普通连接: String className ...

  9. C#去掉字符串头尾指定字符

    private void button2_Click(object sender, EventArgs e)        {//去掉字符串头尾指定字符            string MyInf ...

  10. 逆向实战第一讲,寻找OllyDbg调试工具的Bug并修复

    逆向实战第一讲,寻找OllyDbg调试工具的Bug并修复 首先我们要知道这个OD的Bug是什么. 我们调试一个UNICODE的窗口,看下其窗口过程. 一丶查看OllyDbg 的Bug 1.1spy++ ...