【IO流】基础

导读:本篇文章讲解 【IO流】基础,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

概念

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

节点流中常用类

  • 字节输入流 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)

总结

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/117420.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!