Java笔记杨枝11.25

来源:互联网 发布:暖手宝推荐知乎 编辑:程序博客网 时间:2024/04/29 09:17

IO流

一 文件字节输入流(读数据)
构造方法:
public FileInputStream(String name)
开发步骤:
1)创建文件输入流对象
2)读数据
3)释放资源
读数据的方法:
1)一次读一个字节(会出现中文乱码,字符流解决)
2)一次读一个字节数组
举例:

package prac;import java.io.FileInputStream;import java.io.IOException;public class Prac01 {     public static void main(String[] args) throws IOException {         FileInputStream  file=new    FileInputStream("a.txt");         //      一次读一个字节模板代码         int by=0;         while((by=file.read())!=-1){             System.out.print((char)by);         }         //一次读一个字节数组模板代码(速度快)         byte[] bys=new byte[1024];         int len=0;         while((len=file.read(bys))!=-1){             System.out.println(new String(bys,0,len));         }              file.close();}}

二 文件字节输出流(写数据)
FileOutputStream
构造方法同上

三 字节缓冲输入流:BufferedInputStream(读数据)
构造方法:
BufferedInputStream(InputStream in) :指定默认缓冲区大小创建字节缓冲输入流对象

BufferedInputStream bis = new BufferedInputStream(new FileInputStream("bis.txt")) ;

四 字节缓冲输出流(写数据)
BufferedOutputStream

flush()和close()方法的区别?
flush():刷新缓冲区的流,强迫将缓冲字节都写到该流中,刷新之后是可以写数据的.
close():关闭流对象所指向指向的这个资源文件,一旦关闭,写数据,写不进去的!
总结:对于图片文件,音频文件,视频文件,优先采用字节缓冲输入流(高效流)一次读取一个字节数组!
对于文本文件优先采用字符缓冲输入流(一次读取一行)
五 字符转换输入流InputStreamReader(字节输入流+编码格式(默认GBK))

InputStreamReader isr = new InputStreamReader(new FileInputStream("osw.txt"));//以GBK格式读数据

六 字符转换输入流便捷类(FileReader)

FileReader fr = new FileReader("a.txt") ;

七 字符转换输出流OutputStreamWriter(写完数据必须flush()刷新)

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("osw.txt"));//默认GBK

关于字符输出流写数据的方法:
public void write(int c):写单个字符
public void write(char[] cbuf):写一个字符数组
public abstract void write(char[] cbuf,int off,int len):写入字符数组的一部分
public void write(String str):写字符串
public void write(String str, int off,int len):写字符串的一部分

八 字符转换输出流便捷类FileWriter

FileWriter fw = new FileWriter("b.txt") ;

九 字符缓冲输入流BufferedReader

BufferedReader br = new BufferedReader(new FileReader("bw2.txt")) ;

public String readLine():一次读取一行
读数据模板代码:

String line = null ;        while((line=br.readLine())!=null){            System.out.println(line);        }

十 字符缓冲输出流BufferedWriter

BufferedWriter bw = new BufferedWriter(new FileWriter("bw2.txt")) ;

public void newLine():写入一个换行符号