简谈java IO流

简谈java IO流

概念:java IO流(input/output),就是java中对计算机的输入输出流

(在这里,我只简单介绍4种方式:分别是字节流的输入输出、字符流的输入输出)

网上的一张较为集全的IO流总图:

我这里讲的是

字节流:转换成字节方式,进行操作计算机中的文件

InputStream中的FileInputStream

OutputStream中的FileOutputStream

字符流:因为乱码的问题,需要将一些文件转成字符方式,进行操作计算机中的文件

Reader中的FileReader

Writer中的FileWriter

转换流:

InputStreamReader

OutputSteamWriter:

字节流

字节输入流:FileInputStream:

1.介绍:是一种较为常用的字节输入流,经常作为读取文件的一种输入流

构造函数:

FileInputStream(File file)

    返回一个字节输入流对象,该对象使用字节流读取文件,参数为File类型关联实体文件

FileInputStream(String name)

    返回一个字节输入流对象,传入的name为路径+文件名

2.使用:

FileInputStream inputStream = new  FileInputStream(new File

("D:/work/STS/JavaSE-Day24-IO/1.txt"));

 

//System.out.println(inputStream.read());

//System.out.println((char)inputStream.read());

 

//循环遍历读取数据

int n;

while ((n=inputStream.read())!=-1) {

System.out.println((char)n);

}

//关闭输入流

inputStream.close();

字节输出流FileOutputSteam

  1. 介绍:是一种比较常见的字节输出流,复制文件常用的一种方式

构造函数:

FileOutputStream(File file)

返回一个字节输出流对象,参数为File类型关联实体文件

FileOutputStream(String name)

返回一个字节输出流对象,参数为String类型,取值为路径+文件名

 

向文件中设置是否追加数据:

FileOutputStream(File file, boolean append)

返回一个字节输出流对象,参数1File类型关联实体文件,参数2布尔值true代表追加

FileOutputStream(String name, boolean append)

返回一个字节输出流对象,参数1String类型关联实体文件,参数2布尔值true代表追加

2.使用

FileOutputStream fos = new FileOutputStream

("D:/work/STS/JavaSE-Day24-IO/2.txt");

byte[] b="abcdefghijk".getBytes();

fos.write(b);  //传入的是一个byte类型的数组

fos.close();

 

字符流

字符输入流的FileReader:

1.介绍:在读取中文内容文件中,也是使用比较多的一种方式

FileReader(File file)

    返回一个字符输入流对象,该对象使用字符流读取文件,参数为File类型关联实体文件

FileReader(String name)

    返回一个字符输入流对象,传入的name为路径+文件名

2.使用:

FileReader fr = new  FileReader(new File

("D:/work/STS/JavaSE-Day24-IO/1.txt"));

 

//System.out.println(fr.read());

 

//循环遍历读取数据

int n;

while ((n=fr.read())!=-1) {

System.out.println((char)n);

}

//关闭输入流

fr.close();

字符输出流的FileWriter:

1.介绍:在操作文档文件中,使用比较多的一种方式

构造函数:

FileWriter(File file)

返回一个字符输出流对象,参数为File类型关联实体文件

FileWriter(String name)

返回一个字符输出流对象,参数为String类型,取值为路径+文件名

 

向文件中设置是否追加数据:

FileWriter(File file, boolean append)

返回一个字符输出流对象,参数1File类型关联实体文件,参数2布尔值true代表追加

FileWriter(String name, boolean append)

返回一个字符输出流对象,参数1String类型关联实体文件,参数2布尔值true代表追加

2.使用:

FileWriter fw = new FileWriter

(new File("D:/work/STS/JavaSE-Day24-IO/2.txt"));

fw.write(97);   //97 是ASCII码值,文件中写入的是a

fw.close();

 

转换流

InputStreamReader:字节输入流转字符输入流

1.介绍:

先使用字节流读取包含中文的文件并输出

优化字节流读取文件时可能出现的乱码问题

构造函数:

将字节流转换为字符流,使用InputStreamReader构造函数

InputStreamReader(InputStream in)

将字节流对象包装成一个InputStreamReader对象,默认使用本机字符编码

InputStreamReader(InputStream in,String charset)

将字节流对象包装成一个InputStreamReader对象,使用指定的编码格式

2.使用:

FileInputStream fis = new FileInputStream

("D:/work/STS/JavaSE-Day24-IO/src/cn/itsource/readerandwriter/ReaderAndWriterTest.java");

 

//将字节流包装为字符流

InputStreamReader isr = new InputStreamReader(fis);

char[] c=new char[4];

int len;

 

StringBuilder build=new StringBuilder();

while ((len=isr.read(c))!=-1) {

build.append(new String(c));

}

System.out.println(build.toString());

isr.close();

fis.close();

OutputSteamWriter:字符输出流转字节输出流

  1. 介绍:

将字符流转换为字节流(构造函数)

OutputStreamWriter(OutputStream out)

将一个字符流中的数据内容写入到转换为显示指定的字节流对象

OutputStreamWriter(OutputStream out,String charset)

使用指定的编码格式将字符流转换为字节流

 

  1. 使用

FileOutputStream fos = new FileOutputStream

("D:/work/STS/JavaSE-Day24-IO/5.txt");  //字节流关联实体文件

 

OutputStreamWriter osw = new OutputStreamWriter(fos);  //字符流输出

osw.write("输出中文");

 

osw.close();

fos.close();

这里就是简单讲解这四种方式,如果一些建议可以评论一下,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值