IO流简单用法

来源:互联网 发布:淘宝怎么看退换货记录 编辑:程序博客网 时间:2024/06/05 10:30
/*字符流从文本文件读取*/import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class BufferedReaderDemo {public static void main(String[] args) throws IOException {//创建读取字符流对象和文件相关联FileReader fr=new FileReader("buf.txt");//为了提高效率,使用缓冲技术,将字符流对象作为参数传递给缓冲对象BufferedReader bufr=new BufferedReader(fr);String line=null;while ((line=bufr.readLine())!=null) {System.out.println(line);}bufr.close();}}


/** *字符流写入文本文件 * */import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;public class BufferedWriterDemo {public static void main(String[] args) throws IOException {FileWriter fw=new FileWriter("buf.txt");BufferedWriter bufw=new BufferedWriter(fw);for (int i = 0; i < 5; i++) {bufw.write("abcde");bufw.newLine();//跨平台的换行方法//bufw.flush();}//关闭缓冲区就是在关闭缓冲区中的流对象bufw.close();//fw.close();}}


import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/** * 字节流读取文本文件,字节流也可以操作非文本文件  *  * OutputStream * InputStream * */public class FileStreamDemo {public static void main(String[] args) throws IOException {readFile_3();}public static void readFile_1() throws IOException {FileInputStream fis=new FileInputStream("fos.txt");int ch=0;//从输入流中读取一个数据字节while ((ch=fis.read())!=-1) {System.out.println((char)ch);}fis.close();}public static void readFile_2() throws IOException {FileInputStream fis=new FileInputStream("fos.txt");byte[] buf=new byte[1024];int len=0;//从输入流中将最多 buf.length 个字节的数据读入一个 byte 数组中。while ((len=fis.read(buf))!=-1) {System.out.println(new String (buf,0,len));}fis.close();}public static void readFile_3() throws IOException {FileInputStream fis=new FileInputStream("fos.txt");byte[] buf=new byte[fis.available()];//定义一个刚刚好的缓冲区fis.read(buf);System.out.println(new String(buf));fis.close();}public static void writeFile() throws IOException {FileOutputStream fos=new FileOutputStream("fos.txt");fos.write("abcde".getBytes());fos.close();//不用刷新但需要关闭资源}}
该如何选择流对象呢?1.明确源
  • 源:输入流 InputStream Reader
2.明确目的
  • 目的:输出流 OutputStream Writer
3.明确操作的对象是否是纯文本
  • 是:字符流
  • 否:字节流
下面举个例子来按照上面的步骤正确选择使用哪个流对象.例:将一个文本文件中数据存储到另一个文件中。
  • 源:因为是源,所以使用读取流。InputStream Reader 
  • 目的:OutputStream Writer
  • 是不是操作文本文件。是!这时就可以选择Reader Writer。
  • 操作的是硬盘上一个文件。Reader体系中可以操作文件的对象是 FileReader FileWriter。
  • 是否需要提高效率:是!加入Reader体系中缓冲区 BufferedReader. BufferedWriter
    • FileReader fr = new FileReader("demo.txt");
    • BufferedReader bfr = new BufferedReader(fr);
    • FileWriter fw = new FileWriter("demo_cp.txt");
    • BufferedWriter bfw = new BufferedWriter(fw);  
 
原创粉丝点击