博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO字节流。
阅读量:4840 次
发布时间:2019-06-11

本文共 3120 字,大约阅读时间需要 10 分钟。

字节输出流:

java.io.OutputStream :抽象类,是表示输出字节流的所有类的父类。

java.io.FileOutputStream extends OutputStream: 文件字节输出流。

  作用:把内存中的数据写入硬盘文件。

  构造方法: FileOutputStream(String name),创建一个向指定名称的文件写入数据的输出流。

       FileOutputStream(File file) ,创建一个向指定File对象的文件中写入数据的输出流。

  构造方法的作用:1、创建一个FileOutputStream对象。

           2、根据构造方法中的文件/文件路径,创建一个空文件。

           3、把FileOutputStream 对象指向该文件。

  使用步骤:1、创建FileOutputStream对象。2、write方法写数据。3、释放资源。

write方法:

public class main {    public static void main(String[] args) throws IOException {       File file=new File("C:\\Users\\天\\Desktop\\a.txt");        FileOutputStream fos=new FileOutputStream(file);        fos.write(12);        fos.close();    }}
public class main {    public static void main(String[] args) throws IOException {       File file=new File("C:\\Users\\天\\Desktop\\a.txt");        FileOutputStream fos=new FileOutputStream(file);        byte[] bytes={65,66,67};        fos.write(bytes);        fos.close();    }}

续写和换行写:

续写构造函数:FileOutputStream(String name / File file,boolean append)

  append: 续写开关,true   。。。false。。。

换行符号: Windows  : \r\n   fos.write("\r\n")

字节输入流:

java.io.InputStream :字节输入流,抽象类,是表示字节输入流的所有类的父类。

java.io.FileInputStream extends InputStream.把磁盘文件读入内存。

  构造方法:FileInputStream(String name)  FileInputStream(File file)

  构造方法作用:1、创建对象,2、把对象指向要操作的文件

  使用步骤:1、创建对象。2、read() 3、释放资源。

read() 后 ,指针自动指向下一字节, 结束标记为-1.

 一次读取多个字节:

  int read(byte[] b) ,从输入流读取一定数量的字节,并存在缓冲区数组b中。

  返回的是实际读取到的字节数。

字节流练习:

复制文件:

public static void main(String[] args) throws IOException {        File file =new File("C:\\Users\\天\\Desktop\\a.txt");        File file1 =new File("C:\\Users\\天\\Desktop\\b.txt");        FileInputStream fis=new FileInputStream(file);        FileOutputStream fos=new FileOutputStream(file1,true);        byte[] bytes=new byte[2];        int len;        while ((len=fis.read(bytes))!=-1){            fos.write(bytes);        }        fos.close();        fis.close();    }

字符流:

读取中文字符时,由于编码问题,可能会出错,所以,Java提供专门处理文本文件的字符流类。

字符输入流:

java.io.Reader :抽象类,是所有字符输入流的父类。

 

java.io.FileReader extends InputStreamReader extend Reader.

FileReader: 文件字符输入流,把硬盘文件的数据以字符流的方式读入内存。

  构造方法:FileReader(String fileName / File file )

  构造方法作用:1、创建FileReader对象。2、指向要读取的文件。

字符输出流:

java.io.Writer: 抽象类, 所有字符输出流的父类。

java.io.FileWriter extends OutputStreamWriter extends Writer.

FileWriter: 文件字符输出流

  构造方法:FileWriter(String fileName / File file) 

注意:使用write()时,是把数据写入内存缓冲区先,flush()或释放资源时会刷新到文件中。

flush 和 close区别:

  flush:刷新缓冲区,流对象可继续使用。close:刷缓冲区后释放资源,流对象不可使用。

字符输出流写数据的其他方法:

  void write (char[ ] c) 写入字符数组。

  abstract void write (char[ ] c, int off, int len)

  void write( String str) 写入字符串。

  void write ( String str,int off, int len ) ..

流中异常的处理:

JDK1.7 新特性:

try后可以增加个(),里面可以定义流对象,这个流对象的作用域在try中有效,try执行完后,自动释放。

public static void main(String[] args)  {        File file =new File("C:\\Users\\天\\Desktop\\a.txt");        try (FileWriter fw=new FileWriter(file);){            fw.write(98);            fw.close();        }catch (IOException e){            System.out.println(e);        }}

JDK9 新特性:

在try前面定义流对象, ()里引入流对象名称 ,try代码结束后,也能释放,不用写finally。

转载于:https://www.cnblogs.com/zhangyuhao/p/10859045.html

你可能感兴趣的文章
[置顶] C#执行Excel宏模版的方法
查看>>
2015年9月28日JQuery提前预习预热笔记
查看>>
perl 删除过期文件
查看>>
document.write与document.getElementById的区别
查看>>
搜索可用docker镜像
查看>>
python基础知识梳理-----7函数
查看>>
函数极限的定义
查看>>
POJ 3684 Priest John's Busiest Day 2-SAT+输出路径
查看>>
oracle10g、oracle client和plsql devement 三者之间的关系
查看>>
ICDM评选:数据挖掘十大经典算法
查看>>
巧用「打印」功能实现PDF单页提取
查看>>
【转】Mongo初体验
查看>>
Java中synchronized和同步方法
查看>>
C语言学习记录_2019.01.29
查看>>
个人简历
查看>>
7 Sentences You Shouldn't Say to Your Boss - EVER
查看>>
TurtleBot3-基础例程
查看>>
动态规划之矩阵链
查看>>
Chrome 中的 JavaScript 断点设置和调试技巧 (转载)
查看>>
在Linux shell脚本中root切换到普通用户执行脚本或命令的方法
查看>>