概念
某种特定的数据源,如文件、字符串、字符串数组等
节点流中常用类
- 字节输入流 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