IO流

Java的集合框架:  类和接口存在于java.util包中.

Java的IO:                类和接口存在于java.io包中. 

学习方法:  文档在手,天下我有!

 ----------------------------------------------------------------------------------------- 

讲IO操作之前,必须要先讲File类(文件/目录).

 


File类介绍和路径分隔符: File类是IO包中唯一表示磁盘文件和磁盘目录的对象的路径. 该类包含了创建,删除文件,重命名文件,判断文件读写权限以及文件是否存在,查询等功能方法. 只能设置和获取文件本身的信息,不能设置和获取文件的内容. ----------------------------------------------------------------------------------------- 

Java做开发: 一次编写,到处运行. 

Unix:   严格区分大小写. 

WIndows: 默认情况下是不区分大小写的.  

路径分隔符,属性分隔符: 

Unix:          使用”/”,来分割目录路径.              

                  使用“:”来分割属性. 

Windows:  使用”\”,来分割目录路径.但是在Java中一个”\”表示转义,在Windows平台的Java代码中表示一个路径,就 得使用两个\\. 但是Windows支持/.  

使用;来分割属性.

 ----------------------------------------------------------------------------------------- 

因为我们不知道以后运行的系统平台是什么,就不知道该如何编写分隔符的问题,因此在File类中提供了两类常量,分别来表示路径分隔符和属性分隔符.

IO流IO流

 

IO流

 

IO流

 

IO流

package io;

 

import java.io.File;

import java.io.IOException;

import java.util.Date;

 

public class file {

 

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

        String path=File.separator;

        char s=File.separatorChar;

        System.out.println(path+","+s);

        /*

         * 获取File路径和检测状态:

         *

操作File路径和名称:

File getAbsoluteFile() :获取绝对路径

String getAbsolutePath():获取绝对路径

String getPath() :获取文件路径

String getName() :获取文件名称

File getParentFile():获取上级目录文件

String getParent() :获取上级目录路径

 

检测File状态的方法:

boolean canExecute() :判断是否是可执行文件

boolean canRead() :判断该文件是否可读

boolean canWrite():判断该文件是否可写

boolean isHidden():判断该文件是否是隐藏文件

long lastModified():判断该文件的最后修改时间

long length():获取该文件的长度大小(单位字节)

 

         * */

        File f=new File("E:\\abc\\123\\wode.txt");

        String c=f.getAbsolutePath();

        File d=f.getAbsoluteFile();

        System.out.println(c+"    "+d);

        System.out.println(f.getPath()+"      "+f.getName());

        System.out.println(f.getParentFile()+"      "+f.getParent());

        System.out.println(f.canExecute()+"   "+f.canRead()+"  "+f.canWrite()+" "+f.isHidden());

        Date h=new Date(f.lastModified());

        System.out.println(h.toLocaleString()+"      "+f.length());

        /*

* File类中方法-文件操作:

boolean isFile() :是否是文件

boolean createNewFile() :创建新的文件

static File createTempFile(String prefix, String suffix) :创建临时文件

boolean delete() :删除文件

void deleteOnExit() :在JVM停止时删除文件

boolean exists():判断文件是否存在

boolean renameTo(File dest) :重新修改名称

---------------------------------------------------------------------

File类中方法-目录操作

boolean isDirectory() :判断是否是目录

boolean mkdir()  :创建当前目录

boolean mkdirs() :创建当前目录和上级目录

String[] list() :列出所有的文件名

File[] listFiles() :列出所有文件对象

static File[] listRoots() :列出系统盘符

 

         *

         * */

        System.out.println(f.isFile());

        File dir=new File("E:\\abc\\123");

        File f1=new File(dir,"wode.css");

        if(!f1.exists())

            f1.createNewFile();

        else f1.renameTo(new File(dir,"123.js"));

        System.out.println(f1.isDirectory());

        File dir1=new File("D:\\gh\\123");

        boolean ret=dir1.mkdirs();   //mkdir只能创建一级目录

        System.out.println(ret);

        System.out.println("------------------");

        String[] file=dir.list();

        for(String ele:file)

        {

            System.out.println(ele);

        }

        System.out.println("------------------");

        File[] file1=dir.listFiles();

        for(File ele1:file1)

        {

            System.out.println(ele1);

        }

        File[] root=File.listRoots();

        for(File ro:root)

        {

            System.out.println(ro);

        }    

        

        

        

        System.out.println("--------------");

        /*递归操作*/

        File dir3=new File("E:\\abc");

        listall(dir3);

    }

     /*递归算法*/

    private static void listall(File f) {

        // TODO Auto-generated method stub

        File[] fs=f.listFiles();

        for(File fk:fs)

        {

            System.out.println(fk);

        if(fk.isDirectory())

            listall(fk);

        }

    }

 

}

 

IO流

package io;

import java.io.File;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class fenceng {

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        

            File f=new File("E:\\abc\\123\\wode.txt");

            List<String> p=new ArrayList<>();

            listall(p,f);

            System.out.println(p);

            Collections.reverse(p);

            System.out.println(p);

            StringBuilder sd=new StringBuilder(100);

            for (String ele : p) {

                sd.append(ele).append(">");

            }

            sd.deleteCharAt(sd.length()-1);

            System.out.println(sd);

    }

    private static void listall(List<String> p, File f) {

        // TODO Auto-generated method stub

        if(!"".equals(f.getParentFile().getName()))

        {

            p.add(f.getParentFile().getName());

        }

        if(f.getParentFile().getParentFile()!=null)   //注意

        {

            listall( p,f.getParentFile());

        }

    }

}

 

 

批量修改文件名称案例:

package io;

import java.io.File;

public class pigai {

    public static void main(String[] args) {

    File dir=new File("E:/abc/123");

     File[] file=dir.listFiles();

     String dir1="zhouzhou";

     for(File ele:file)

     {

         boolean ret=ele.getName().contains(dir1);

         System.out.println(ret);

         if(ele.getName().contains(dir1))

         {

             System.out.println(ele);

             String pathname=ele.getName().replace(dir1, "");

             ele.renameTo(new File(dir,pathname));

            

         }

         System.out.println(ele);

        }

 

    }

    

}

 

结果显示:

还没启动程序前

IO流

启动程序后:

IO流

 

IO流

IO流

package io;

import java.io.File;

import java.io.FilenameFilter;

public class wenjianguolv {

    public static void main(String[] args) {

        // TODO Auto-generated method stub

          File f=new File("E:/abc/123");

          File[] files=f.listFiles(new FilenameFilter() {

            

            @Override

            public boolean accept(File dir, String name) {

                

                return new File(dir,name).isFile()&&name.endsWith(".txt");

                        }

        });

          for(File ele:files)

          {

              System.out.println(ele);

          }

    }

}

 

结果只显示txt结尾的文件

IO流

 

 

IO流

IO流

IO流

 

IO流IO流

 

 

IO流

 

 

package io;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

public class zonghe {

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

        File  p=new File("file/abc.txt");

        File  q=new File("file/123.txt");

        byte[] o=new byte[5];

        InputStream h=new FileInputStream(p);

        OutputStream j=new FileOutputStream(q);

        int len=-1;

       

       while((len=h.read(o))!=-1)

        {

            String str=new String(o, 0, len);

            System.out.println(str);

            j.write(o, 0, len);

        }

        h.close();

        j.close();

    }

}

 

 

IO流

 

 

字符输出流:

package io;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.io.Writer;

public class zifushuru {

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

        File p=new File("file/123.txt");

        Writer q=new FileWriter(p);

        q.write("黑了咯 我");

        q.close();

    }

}

字符输入流:

package io;

 

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.io.Reader;

 

public class zifushuchu {

 

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

         File  p=new File("file/123.txt");

         Reader  q=new FileReader(p);

         char[] a=new char[5];

         int len=-1;

         while((len=q.read(a))!=-1)

         {

             System.out.println(a);

         }

         q.close();

    }

 

}

 

文件拷贝:

package io;

 

import java.io.File;

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 zifuzonghe {

 

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

        File  p=new File("file/123.txt");

        File  q=new File("file/123copy.txt");

        Reader in=new FileReader(p);

        Writer out=new FileWriter(q);

        char[] f=new char[1024];

        int len=-1;

        while((len=in.read(f))!=-1)

        {

            System.out.println(f);

            out.write(f, 0, len);

        }

        out.close();

        in.close();

    }

 

}

 

 

 

IO流

IO流

 

package io;

 

import java.io.UnsupportedEncodingException;

import java.util.Arrays;

 

public class bianmajiema {

 

    public static void main(String[] args) throws UnsupportedEncodingException {

        // TODO Auto-generated method stub

      String a="zhouzhou-98";

      byte[] b=a.getBytes("GBK");

      System.out.println(Arrays.toString(b));

      b=a.getBytes("UTF-8");

      System.out.println(Arrays.toString(b));

      String c=new String(b,"UTF-8");

      System.out.println(c);

    }

 

}

 

IO流

字节缓冲流:

package io;

import java.awt.datatransfer.StringSelection;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

public class zijiehuanchong {

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

       BufferedOutputStream  p=new BufferedOutputStream(new FileOutputStream("file/1.txt"));

       p.write("fdfdferegbgmcbzcaderythtrny".getBytes());

       p.close();

       BufferedInputStream q=new BufferedInputStream(new FileInputStream("file/1.txt"));

       byte[] b=new byte[5];

       int len=-1;

       while((len=q.read(b))!=-1)

       {

           String str=new String(b, 0, len);

           System.out.println(str);

       }

    }

}

 

字符缓冲流:

package io;

 

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

 

public class zifuhuanchongliu {

 

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

        BufferedWriter p=new BufferedWriter(new FileWriter("file/1.txt"));

        p.write("fdoerwerfdwcsd,ncsxcvdgfvdfgvxc.vfd");

        p.close();

        BufferedReader q=new BufferedReader(new FileReader("file/1.txt"));

        char[] a=new char[5];

        /*

        int line=-1;

        while((line=q.read(a))!=-1)

        {

            String str=new String(a, 0, line);

            System.out.println(str);

        }

       */

        

        String len=null;

        while((len=q.readLine())!=null)

        {

            System.out.println(len);

        }

    }

 

}

 

IO流

package io;

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.Reader;

import java.io.UnsupportedEncodingException;

import java.io.Writer;

 

public class transform {

 

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

        File p=new File("file/2.txt");

        File q=new File("file/3.txt");

        Reader r=new InputStreamReader(new FileInputStream(p),"GBK");

        Writer w=new OutputStreamWriter(new FileOutputStream(q),"GBK");

        int len=-1;

        char[] b=new char[5000];

        while((len=r.read(b))!=-1)

        {

            System.out.println(b);

            w.write(b,0,len);

        }

        w.close();

        r.close();

    }

 

}

 

IO流

package io;

 

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.CharArrayReader;

import java.io.CharArrayWriter;

import java.io.IOException;

import java.io.StringReader;

import java.io.StringWriter;

 

public class neicunliu {

 

    public static void main(String[] args) throws Exception {

        // TODO Auto-generated method stub

        /*

         *字节内存流*/

         /*

        ByteArrayOutputStream p=new ByteArrayOutputStream();

        p.write("fdfjkdfgdsaopierwmfdsv".getBytes());

        byte[] buffer=p.toByteArray();

        ByteArrayInputStream q=new ByteArrayInputStream(buffer);

        byte[] buf=new byte[5];

        int len=-1;

        while((len=q.read(buf))!=-1)

        {

            String str=new String(buf, 0, len);

            System.out.println(str);

        }

       

        */

        

        

         /*字符内存流*/

        /*

         CharArrayWriter p=new CharArrayWriter();

         p.write("fddskfyewiurfelgnffkvharfofsdl");

         char[] q=p.toCharArray();

         CharArrayReader f=new CharArrayReader(q);

         System.out.println((char)f.read());*/

        /*数组流*/

        StringWriter p=new StringWriter();

        p.write("fdsfewmdfbsd");

        StringReader q=new StringReader(p.toString());

        char[] b=new char[5];

        int len=-1;

        while((len=q.read(b))!=-1)

        {

            System.out.println(new String(b,0,len));

        }

    }

 

}

IO流

IO流

package io;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.io.SequenceInputStream;

public class hebin {

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

        SequenceInputStream in=new SequenceInputStream(new FileInputStream("file/2.txt"),new FileInputStream("file/3.txt"));

        byte[] buf=new byte[1024];

        int len=-1;

        while((len=in.read(buf))!=-1)

        {

            System.out.println(new String(buf,0,len));

        }

       

    }

}

IO流

IO流

package io;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputFilter;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.Serializable;

import java.io.WriteAbortedException;

class student implements Serializable{

    private String name;

    private int age;

    private String sex;

    public student(String n,int g,String s) {

        this.name=n;

        this.age=g;

        this.sex=s;

    }

    

    public String toString() {

        return "student [name=" + name + ", age=" + age + ", sex=" + sex + "]";

    }

    

}

public class duixiangliu {

    public static void main(String[] args) throws IOException, Exception {

        // TODO Auto-generated method stub

        File  p=new File("file/对象流.txt");

        write(p);

        in(p);

    }

    private static void in(File p) throws Exception, IOException {

        // TODO Auto-generated method stub

        ObjectInputStream f=new ObjectInputStream(new FileInputStream(p));

        student t= (student) f.readObject();

        System.out.println(t);

        f.close();

    }

    private static void write(File p) throws Exception, IOException {

        // TODO Auto-generated method stub

        ObjectOutputStream  f=new ObjectOutputStream(new FileOutputStream(p));

        f.writeObject(new student("suyuzhou", 20, "男"));

        f.close();

    }

}

IO流

 

 

 

IO流

package io;

 

import java.io.FileNotFoundException;

import java.io.PrintStream;

 

public class print {

 

    public static void main(String[] args) throws Exception {

        // TODO Auto-generated method stub

        PrintStream ps=new PrintStream("text/345.txt");

        ps.println(123);

        ps.print("黄河之水天上来,奔流到海不复回");

        ps.close();

    }

 

}

 

总体:

IO流IO流

IO流

IO流IO流