首页 > 代码库 > File I|O(八)

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 }
代码示例

 

File I|O(八)