【IO流】基础

概念

某种特定的数据源,如文件、字符串、字符串数组等

节点流中常用类

  • 字节输入流 FileInputStream
  • 字节输出流 FileOutputStream
  • 字符输入流 FileReader
  • 字符输出流 FileWriter

字符流

字符输入流Reader

FileReader fr=null;
File file =new File("F:\\1\\2.txt");
fr=new FileReader(file);
char [] c=new char[3];
int len=0;
while((len=fr.read(c))!=-1){
    System.out.println(new String(c,0,len));
}

finally{
    fr.close();
}

字符输出流

FileWriter fw=null;
fw =new FileWriter("F:\\1\\2.txt",true);
String str="123";
fw.write(str);

finally
{
    fw.write(str)
}

字节流

字节输入流InputStream

  • FileInputStream
  • BufferedInputStream

使用

	//声明字节输入流对象
    FileInputStream fis=null;

	//根据文件的路径,得到一个File对象
     File file =new File("F:\\1\\2.txt");

	//考虑读取的是一个文本还是视频
    文本:FileInputStream或FileReader(字符)
    视频:FileInputStream(字节)
    fis = new FileInputStream(file);

	//做一个字节数组b,用于每次从文件中读取3个大小的字节,然后把读取的字节内容,暂存在b中
    byte [] b=new byte[3];

	//遍历

	int len=0;
	while((len=fis.read(b))!=-1){
	//字节→字符串,使用String str = new String(byte[]b)
	  System.out.println(new String(b,0,len))
	  //0:从第0位开始转换
	  //len:转换长度
	}
	finnally
    {
        Fis.close();//关闭流
    }

读取文件中有中文的时候出现乱码,解决办法:

①使用字符流去读取
②java文件的编码方式必须和文件的编码方式相同

字节输出流OutputStream

  • FileOutputStream
  • BufferedOutputStream
FileOutputStream fos=null;

fos=new FileOutputStream("F:\\1\\2.txt",true);//true 追加,false或不写 替换

String str="ddd";//输出内容
byte[]b=str.getBytes();

//write(byte[])需要一个字节数组,所以我们把要写入的字符串通过getByte()变成字节数组
fos.write(b);
	
finally{
    fos.close();//关闭流对象,否则容易造成内存溢出
}

字节输入流in,转换为字符输入流

InputStreamReader(InputStream in)

字节输出流out,转换为字符输出流

OutputStreamWriter(OutputStream out)

总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值