黑马程序员——自学笔记11(IO流的分类与各种流的创建)
来源:互联网 发布:手机自动报警软件 编辑:程序博客网 时间:2024/06/16 02:14
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
IO流:处理设备之间的数据传输
分类:
按操作数据分:字节流和字符流
字节流的抽象基类:InputStream、OutputStream
字符流的抽象基类:Reader、Writer
按流向分:写入流和读取流
字符流
Writer的子类FileWriter
FileWriter fw=new FileWriter("demo.txt");//创建文件,在编译的位置目录下,也可以指定绝对路径(c:\\abc\\)。若已有该名文件,则覆盖
fw.write(“abc”);//将字符串写入流中,而不是目的地
fw.flush();//将字符串刷入目的地中
fw.close();//关闭数据流,但会先刷入目的地。若已经把所要写入的所有数据都write完了,不再用到流了,可单独用这个方法,不用flush
文件的续写:
FileWriter fw=new FileWriter("demo.txt",true);//demo.txt文件已存在,但要是还是没有的话,就会建个新的。true代表允许在demo.txt文件数据后续写
fw.write(“abc”);
Reader的子类FileReader
FileReader fr=new FileReader("demo.txt");//创建一个文件读取流对象,使其与已存在的读取源文件关联
读取方式一:
int ch=0;
while((ch=fr.read())!=-1)//读到末尾,读不到了就返回-1
System.out.print((char)ch);
fr.close();
读取方式二:
char[] ch=new char[1024];//定义一个数组,用于存储读到的字符。长度可定义成1024的整数倍
int num=0;
while((num=fr.read(ch))!=-1)
System.out.print(new String(ch,0,num));
fr.close();
字符流缓冲区:
BufferedWriter类:FileWriter fw=new FileWriter("demo.txt");//创建缓冲区之前要先有流对象
BufferedWriter bw=new BufferedWriter(fw);//只要将要提高效率的流对象作为参数传入即可
bw.write(“abc”);
bw.newLine();//跨平台行分隔符方法
bw.flush();//使用缓冲区是要刷新
bw.close();//其实是在关闭流对象
BufferedReader类:前两步类似上
String line=null;
//一次读取一行
while((line=br.readLine())!=null)
System.out.printlin(line);
IO流的异常处理:
不管是字符流还是字节流,不管是谁的缓冲区,最后都要关闭,也就是说要放在try-catch-finally语句块的finally里,在之前要判断流是否为空
字节流
OutputStream:写入字节流
class FileStream{
public static void main(String[] args){
writeFile();
}
public static void writeFile() throws IOException{
FileOutputStream fos=new FileOutputStream("fos.txt");//直达目的地,不用刷新
fos.write("abc".getBytes);//这是字节流啊
fos.close();
}
}
InputStream类:读取字节流,有三种方式:
第一种和字符流的一样,第二种也基本相同,只是将字符数组改成字节数组
第三种可以使用fis.available()方法设置长度刚刚好的自己数组,但这种方法并不好,因为并不知道文件数据到底是多少字节,容易造成内存溢出
To be continue...
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
- 黑马程序员——自学笔记11(IO流的分类与各种流的创建)
- 黑马程序员——关于IO流的分类整理
- 黑马程序员——自学笔记3(java中各种方法的特点)
- 黑马程序员---自学随堂笔记----IO流
- 黑马程序员--自学笔记--IO流(其一)
- 黑马程序员--自学笔记--IO流(其二)
- 黑马程序员--自学笔记--IO流(其三)
- 黑马程序员——io流的基本概况和分类
- 黑马程序员——自学笔记12(图形化界面编程1—各种组件及创建)
- 黑马程序员----IO流(2)各种流实例 笔记
- 黑马程序员-自学笔记-字符串的使用
- 黑马程序员—18—java基础:有关IO流的学习笔记和学习心得体会
- 黑马程序员——对io流的flush与close方法的理解
- 黑马程序员--IO流的学习笔记(一)
- 黑马程序员 Java自学日记八 关键字的分类
- 黑马程序员----IO流 笔记
- 黑马程序员—io流
- 黑马程序员—IO流
- 安装和运行maven
- jquery绑定事件如何传递参数
- mastudio 超链
- 用doctype激活浏览器模式
- 【转】(lib)SVM 簡易入門
- 黑马程序员——自学笔记11(IO流的分类与各种流的创建)
- C#生成DLL文件
- 没有了痕迹的伤感QQ日志_再美的记忆,再难的割舍
- 程序员人生之路 .
- 同步数据库flush和flushType
- Style和Theme
- 使用iscroll4可能会遇到的问题
- C# 3.0 扩展方法&接口
- JavaScript跨域 --待续