IO放射读写

这里写图片描述
IO流:
根据流的方向 :
输入流,输出流
根据流操作的数据类型 :
字节流,字符流

字符流 : 字节流 + 编码表
IO流 –>Input(输入) Output(输出)流
设备间数据的传输都是通过IO流来实现的
IO流所设计到的流对象都是封装在IO包中

存储数据的设备 :
内存
文件
数据库
网络(云)

所有操作字节流的顶层
InputStream(输入流) OutputStream(输出流)

所有操作字符流的顶层
Reader(输入流) Writer(输出流)

字节流 : 操作所有文件(音视频,各种安装软件,游戏…)
字符流 : 操作纯文本类 型数据比字节流方便.

//重要快捷键: 整体抓异常 选中要抓的整体异常 ALT + Shift + z

//输出流 (写)

demo01 
String count = "我爱你";  
//FileWriter
//用来写入字符文件的便捷类。
FileWriter fw = new FileWriter("Demo1.txt");
//3.调用字符流的write方法将内容写出去
fw.write(count);
//将内容保存
fw.flush();
//关闭流
fw.close(); 

//输入流 (读)

demo02 
FileReader fr = new FileReader("Demo.txt") 
int len = 0;
//流缓冲区读取效率更
char[] arr = new char[1024];  
//当整体字符全部读取完毕之后会返回一个-1所以可以当作循环停止的条件
while ((len = fr.read(arr))!=-1) {
    System.out.println(new String(arr,0,len));
} 
fr.close();   

//将一个绝对路径里面的文件复制到别的位置

FileReader fr = new FileReader("D://asd//sign.txt"); 
FileWriter fw = new FileWriter("D://asd//sign2.txt"); 
    // 创建一个字符串缓存区 来高效读取边读边写
    char[] arr = new char[1024]; 
    int len = 0; 初始化数据 
    /**
    *循环读取当返回-1则表示没有数据了
    *然后就是循环读取之后的写 fw.write()
    */
    while ((len = fr.read(arr)) != -1) {
        fw.write(arr, 0, len);
    }
    //应该先关闭(输出流)保证数据的完整  然后再关闭(输入流)
    fw.close();
    fr.close();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章