zoukankan      html  css  js  c++  java
  • 流的那些事-Read-Writr

    1 file是可以获取文件的属相,但是无法读取和写入文件,有一种东西可以读和写文件,那就是流。流是指一连串流动的字符,是以先进先出的方式发送和接受数据的通道。

    2 按照流的方向可以分为输入流和输出流。

    3 按照处理的方式划分为字节流和字符流

    我们先来看一下字节流是如何读取的。

    package file;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class FileInputStreamTest {
    
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            //创建对象并制定路径
            FileInputStream file=new FileInputStream("/Users/apple/Documents/tes.txt");
            FileOutputStream fos=new FileOutputStream("/Users/apple/Documents/tes.txt");
            String worlds="我的青春我做主";
            byte[]w=worlds.getBytes();
            fos.write(w);
            System.out.println("写入成功");
            byte[]b=new byte[1024];//设立缓存区
            int date;
            while((date=file.read())!=-1){
                 file.read(b);
                 String str=new String(b,0,date);//接受读取的字节
                System.out.println(str);
            }
            file.close();//关流
            fos.close();//关流å
    
        }
    
    }

    通过上面的代码大家应该清楚了,字节流的读和写,但是还需要注意一点,在向文件写数据的时候讲覆盖文件中原有的内容。

    字符流的读和写

    package reader;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.Reader;
    import java.io.Writer;
    
    public class ReaderTest {
    
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            // 创建读的对象
            Reader r = new FileReader("/Users/apple/Documents/tes.txt");
            BufferedReader br = new BufferedReader(r);
            // 创建写的对象
            Writer f = new FileWriter("/Users/apple/Documents/tes.txt");
            BufferedWriter bw = new BufferedWriter(f);
            bw.write("你好");// 写入内容
            bw.write("明天");
            bw.flush();
            bw.close();
            f.close();
            // 读取一行
            String lin = br.readLine();
            // 循环读取
            while (lin != null) {
                System.out.println(lin);
                lin = br.readLine();
            }
    
        }
    
    }

    需要提醒的一点是,BufferedReader,BufferedWriter, 都自带缓存区。别忘了刷新缓存

  • 相关阅读:
    蓝桥杯 网络寻路
    ny33 蛇形填数
    集合运算 蓝桥杯 set容器
    蓝桥杯 回形取数
    bam/sam格式说明--转载
    samtools一些文档
    Linux批量更改文件后缀-转载
    GATK--使用转载
    Linux下wget下载整个FTP目录(含子目录)--转载
    CRLF line terminators导致shell脚本报错:command not found --转载
  • 原文地址:https://www.cnblogs.com/liuxingzhi/p/6845801.html
Copyright © 2011-2022 走看看