• File I|O(八)


    1.I/O:input/output
      1.1.java.io.File
        表示:文件或者文件夹(目录)
      File f=new File("文件路径")
      注意:相对路径:非web项目的相对路径都是以项目名为起点(src/a.txt)(建议使用)
           绝对路径:d:/bin/a.txt(以盘符开头的)(不可取)


    2.文件常见方法
      boolean flag=f.exists(); //文件是否存在
      flag=f.isFile(); //是否是文件
      flag=f.isDirectory(); //是否是目录
      str=f.getPath(); //获得文件的相对路径
      str=f.getAbsolutePath(); //获得文件的绝对路径
      str=f.getName(); //获得文件名
      flag=f.delete(); //删除文件
      flag=f.createNewFile(); //创建文件
      long=f.length(); //返回文件长度
      注意:File不能操作文件内容


    3.InputStream/OutputStream
      文件:FileInputStream/FileOutputStream
        3.1 FileInputStream(输入流)
          数据从文件到java代码中。
          int read(); //读取一个字节
          int read(byte[]); //读取一串字节
          long avaliable; //文件长度
        3.2 FileInputStream(字节文件输入流)
          new FileInputStream(File);
          new FileInputStream("文件路径+文件名");
        3.3 FileOutputStream(输出流)
          数据从java代码中,写到文件或者其他介质中。
          void write(字节); //写入一个字节
          void write(byte[]); //写入字节数组
        3.4 FileOutputStream
          new FileOutputStream(File);
          new FileOutputStream("文件路径+文件名");
          new FileOutputStream("文件路径+文件名",true);
        注意:a.boolean:表示是否向文件末尾追加,如果是true,表示追加,false表示不追加(也就是覆盖),默认值为false
           b.创建FileOutputStream实例时,如果相应的文件并不存在,则会自动创建一个空的文件。

    4.Reader/Writer(字符流)
      //能够用文本编辑器打开的文件,不乱码就是字符文件
      //能够用文本编辑器打开乱码的,就是字节文件
        4.1 FileReader
          int b=fr.read(); //读取一个字符
          int length=fr.read(char[]); //读取字符数组
        4.2 FileWriter
          fw.write(char); //写一个字符
          fw.write(char[]); //写字符数组
        4.3BufferedReader(字符输入缓冲流)
          BufferedReader br=new BufferedReader(new FileReader("文件路径"));
          String str=br.readLine(); //读取一行字符
        4.4BufferedWriter(字符输出缓冲流)
          BufferedWriter bw=new BufferedWriter(new FileWriter("文件路径"));
          bw.write(字符串);

    运行结果:

     1 package Day19;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.BufferedWriter;
     5 import java.io.FileReader;
     6 import java.io.FileWriter;
     7 import java.io.IOException;
     8 
     9 public class TestBuffer {
    10     public static void main(String[] args) throws Exception {
    11         buReader();
    12         buWriter();
    13         
    14     }
    15 
    16     private static void buWriter() throws Exception {
    17         BufferedWriter bw=new BufferedWriter(new FileWriter("src/a.txt"));
    18         bw.write("我是中国人");
    19         //刷新缓存
    20         bw.flush();
    21         //默认执行flush(),关闭管道
    22         bw.close();
    23     }
    24 
    25     private static void buReader() throws Exception {
    26         BufferedReader br=new BufferedReader(new FileReader("src/d.txt"));
    27         //读取一行记录
    28 //        String str=br.readLine();
    29 //        str=br.readLine();
    30 //        System.out.println(str);
    31         
    32         String str;
    33         while((str=br.readLine())!=null){
    34             System.out.println(str);
    35         }
    36     }
    37 }
    代码示例


    5.DataInputStream/DataOutputStream

    6.小结
      6.1读写字符文件
        读:BufferedReader br=new BufferedReader(new FileReader("文件路径"));
        写:BufferedWriter bw=new BufferedWriter(new FileWriter("文件路径",boolean));
      6.2读写字节文件
        DataInputStream dis=new DataInputStream(new FileInputStream("文件路径"));
        DataOutputStream dos=new DataOutputStream(new FileOutputStream("文件路径"));
      6.3读取整个字符文件
        String str=null;
        while((str=br.readLine())!=-1){
          System.out.println(str);
        }
      6.4读取整个字节文件
        int b;
        while((b=dis.read())!=-1){
          System.out.println(b);
        }

     1 package Day20;
     2 
     3 import java.io.DataInputStream;
     4 import java.io.DataOutputStream;
     5 import java.io.FileInputStream;
     6 import java.io.FileOutputStream;
     7 
     8 public class TestByteFile {
     9     public static void main(String[] args) throws Exception {
    10         DataInputStream dis1=new DataInputStream(new FileInputStream("src/a.jpg"));
    11         int a=dis1.read();
    12         System.out.println(a);
    13         dis1.close();
    14         
    15         DataOutputStream dos1=new DataOutputStream(new FileOutputStream("src/b.jpg"));
    16         dos1.write(255);
    17         dos1.close();
    18         
    19         //复制a.jpg--->b.jpg
    20         DataInputStream dis2=new DataInputStream(new FileInputStream("src/a.jpg"));
    21         DataOutputStream dos2=new DataOutputStream(new FileOutputStream("src/b.jpg"));
    22         int b;
    23         while((b=dis2.read())!=-1){
    24             dos2.write(b);
    25         }
    26         dis2.close();
    27         dos2.close();
    28     }
    29 }
    代码示例
  • 相关阅读:
    201771030123-王爽 实验一 软件工程准备—阅读《现代软件工程—构建之法》并提问
    《面向对象程序设计课程学习进度条》
    201771010132-徐思 实验四 软件项目案例分析
    201771010132-徐思 实验三 结对项目-《西北师范大学疫情防控信息系统》
    201771010132-徐思 实验一 软件工程准备-浏览《构建之法》
    徐思201771010132 《面向对象程序设计(java)》课程学习总结
    徐思 201771010132
    徐思201771010132《面向对象程序设计(java)》第十六周学习总结
    徐思201771010132《面向对象程序设计(java)》第十五周学习总结
    徐思201771010132《面向对象程序设计(java)》第十四周学习总结
  • 原文地址:https://www.cnblogs.com/yang82/p/7073238.html
Copyright © 2020-2023  润新知