java IO流相关知识梳理

来源:互联网 发布:淘宝隐形降权查询工具 编辑:程序博客网 时间:2024/06/05 08:24

一.I/O流的划分与概念

数据流是一组有顺序,有起点和终点的字节集合

InputStream 输入流     只能读不能写
OutStream   输出流     只能写不能读

数据源------>程序-------->数据接收器

输入流                              输出流

java流根据读取文件单位的分类:字节流与字符流

在最底层,所有的输入流都是以字节形式的,基于字符的流是为了处理字符提供有效快捷的方法

二.示例

1.如何遍历文件夹里的所有文件

public class FileList {public static void main(String[] args) {File file=new File("G://");getFile(file);}public static void getFile(File file) {File file1[]=file.listFiles();//创建一个集合来遍历filefor (File f : file1) {//遍历集合fileif (f.isDirectory()) {//如果是目录System.out.println("------------>"+f.getAbsolutePath());getFile(f);//继续遍历}else {System.out.println(f.getAbsolutePath());//如果不是目录,则输出文件}}}}

2.用字节流来读写

public class ByteSteam {//用字节流读写public static void main(String[] args) throws IOException {FileOutputStream fos=new FileOutputStream(new File("G:/java基础/新建文件夹/1.txt"));    String str="大家好";    fos.write(str.getBytes());    FileInputStream fis=new FileInputStream("G:/java基础/新建文件夹/2.txt");            byte[] b=new byte[1024];    while(fis.read(b)!=-1) {         fos.write(b);         }}}

3.用字符流来读写
public class CharSteam {//用字符流读写public static void main(String[] args) throws IOException {FileWriter fw=new FileWriter(new File("G:/java基础/新建文件夹/3.txt"),true);FileReader fr=new FileReader("G:/java基础/新建文件夹/4.txt");        int i;        while((i=fr.read())!=-1) {        fw.write(i);        }        fw.close();}}

字符流与字节流的区别:
  操作字节流本身是不会用到缓冲区,是文件本身直接操作的,而字符流操作用到了缓冲区.如果我们在写的过程中,不关闭流,文件写入的数据是无法保存的.



原创粉丝点击