zoukankan      html  css  js  c++  java
  • I/O流

    InputStream/OutinputStream

    文件:

    FileInputStream/FileInputStream

      InputStream(输入流)
                数据从文件到java代码中.
               int read();//读取一个字节
               int read(byte[]);//读取一串字节
               long avaliable;//文件长度


     FileInputStream(字节文件输入流)
               new FileInputStrea(File);
               new FileInputStream(“文件路径+文件名”)

    OutputStream(输出流)
                数据从java代码中,写到文件或者其他介质中,
                void write(字节);//写入一个字节
                void write(byte[]);//写入字节数组
    FileOutputStream
               new FileOutputStream(File);
               new FileOutputStream(“文件路径+文件名”);
               new FileOutputStream(“文件路径+文件名”,boolean);
             注意:

    a.boolean:表示是否向文件末尾追加,如果是true,表示
                     追加,false表示不追加(也就是覆盖),默认值为false

     b.创建FileOutputStream实例时,
         如果相应的文件并不存在,则会自动创建一个空的文件

    package ioday01;
    
    import java.io.File;
    import java.io.IOException;
    
    public class Text {
    
        public static void main(String[] args) {
             //TODO Auto-generated method stub
            //读取a.txt文件,在哪个地方,\
            File f = new File("文件路径");
            // "\":表示转义
             //"/":表示/
            File f = new File("E:/a.txt");
            //System.out.println(f);
            //文件是否存在
            boolean flag = f.exists();
            System.out.println(flag);
            //是否是文件
            flag = f.isFile();
            System.out.println(flag);
            //是否是目录
            flag  = f.isDirectory();
            System.out.println(flag);
            //获取文件相对路径
            String path = f.getPath();
            System.out.println(path);
            //获取文件绝对路径
             path = f.getAbsolutePath();
             System.out.println(path);
             //获取名字
             String name = f.getName();
             System.out.println(name);
             //删除文件或者目录
             flag = f.delete();
             System.out.println(flag);
             //创建(检查异常,IOException,SOLException)
             try {
                flag = f.createNewFile();
                System.out.println(flag);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             System.out.println(f.length());
             //普通java项目,都是项目名为节点
             File f = new File("src/ioday01/Text.java");
             System.out.println(f.exists());
             System.out.println(f.getPath());
             System.out.println(f.getAbsolutePath());
            }
    
    }
    View Code

    Reader/Writer(字符流)
               //能够用文本编辑器打开的文件,不乱码就是字符文件
               //用文本编辑器打开乱码的,就是字节文件

     FileReader            

    int b = fr.read();//读取一个字符            

    int length = fr.read(char[]);//读取字符数组  

          

    package io.day02;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    
    public class TestReaderFile {
    
        public static void main(String[] args) throws Exception {
            // TODO Auto-generated method stub
            File f = new File("src/a.txt");
            InputStream is = new FileInputStream(f);
    
            int b;
            while((b = is.read()) != -1){
                System.out.print((char)b);
            }
        }
    
    }
    View Code

    FileWriter            

    fw.write(char);//写一个字符            

    fw.write(char[])//写字符数组    

        

    package io.day02;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    
    public class TestWriterFile {
    
        public static void main(String[] args) throws Exception {
            int[] ary = {97,98,99,100,101};
            File f = new File("src/a.txt");
            OutputStream os = new FileOutputStream(f);
            for(int i :ary){
                os.write(i);
            }
            os.close();
            //复制文件a.txt的内容到b.txt
            File f1 = new File("src/b.txt");
            boolean f2 = f1.exists();
            System.out.println(f2);
             try {
                f2 = f1.createNewFile();
                System.out.println(f2);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             
        }
        
        
    }
    View Code

     BufferedReader(字符输入缓冲流)            

    BufferedReader br = new BufferedReader(new FileReader("文件路径"))            

    String str = br.readLine();//读取一个字符     

       

    BufferedWriter(字符输出缓冲流)            

    BufferedWriter bw = new BufferedWriter(new FileWriter("文件路径"))            

    bw.write(字符串)     

    DataInputStream/DataOutputStream

    读写字符文件            

    BufferedReader br = new BufferedReader (new FileReader(文件));            

    BufferedWriter bw = new BufferedWriter(new FileWriter(文件,boolean));  

     读写字节文件             DataInputStream dis = new DataInputStream(new FileInputStream(文件));            

    DataOutputStream dos = new DataOutputStream(new FileOutputStrem(文件));  

    package io.day04;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class TestBuffer {
    
        public static void main(String[] args) throws Exception {
    //        buReader();
            buWriter();
        }
    
        private static void buWriter() throws Exception {
            // TODO Auto-generated method stub
            BufferedWriter bw = new BufferedWriter(new FileWriter("src/a.txt"));
            bw.write("我是刘美猪");
            //刷新缓存
    //        bw.flush();
            //默认执行flush(),关闭管道.
            bw.close();
        }
    
        private static void buReader() throws Exception {
            // TODO Auto-generated method stub
            BufferedReader br = new BufferedReader(new FileReader("src/c.txt"));
            //读取一行记录
    //        String str = br.readLine();
    //        str = br.readLine();
    //        System.out.println(str);
            String str;
            while((str = br.readLine())!=null){
                System.out.println(str);
            }
        }
    
    }
    View Code

    读取整个字符文件            

    String str = null;            

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

    读取整个字节文件      

    int b;            

    while((b=br.read())!= -1){   System.out.println(b);    }

  • 相关阅读:
    398. Random Pick Index
    382. Linked List Random Node
    645. Set Mismatch
    174. Dungeon Game
    264. Ugly Number II
    115. Distinct Subsequences
    372. Super Pow
    LeetCode 242 有效的字母异位词
    LeetCode 78 子集
    LeetCode 404 左叶子之和
  • 原文地址:https://www.cnblogs.com/liumeilin/p/6832483.html
Copyright © 2011-2022 走看看