JAVA练手--文件操作

1. File类

主要作用:用于文件和文件夹的创建、查找、删除等操作

public static void main(String[] args) throws IOException {
        
        File f = new File("haha/bin");
        
        //1. 创建文件夹
        {
            if(f.exists()){
                System.out.println("1:  "+"目录存在");
            }else{
                System.out.println("1:  "+"目录不存在");
            }
            
            f.mkdirs();
            if(f.exists()){
                System.out.println("1:  "+"目录存在");
            }else{
                System.out.println("1:  "+"目录不存在");
            }    
        }
        //2. 查找文件夹中的文件和文件夹
        {
            if(f.isDirectory()){
                System.out.println("2:  "+"是目录");
            }else{
                System.out.println("2:  "+"是文件");
            }
            //将这个目录下的所有文件和文件夹全部单独放在在字符串中
            String[] list = f.list();
            for(String b : list){
                System.out.println("2:  文件名:"+b);
                File fs = new File("haha/bin/"+b);
                if(fs.isFile()){
                    System.out.println("2:  属性:"+"文件");
                }else{
                    System.out.println("2:  属性:"+"目录");
                }
            }
        }
        //3. 删除文件和文件夹
        {
            //拿到所有文件的对象
            File[] ff = f.listFiles();
            
            for(File tf : ff){
                //如果是文件夹则暂时不管
                if(tf.isDirectory()){
                    
                }else{
                    tf.delete();
                }
            }
        }
        
    }

结果:

1:  目录存在
1:  目录存在
2:  是目录
2:  文件名:s
2:  属性:目录

2. 字节流

    public static void main(String[] args) throws IOException {
        String StrA = "hello world";
        File f = new File("f.txt");
        if(f.exists()){
            System.out.println("文件存在");
        }else{
            System.out.println("文件不存在");
        }
        //创建字节流输出流对象,如果没有文件则创建文件
        //方法1:
        //FileOutputStream  fos = new FileOutputStream("f.txt");
        //方法2:
        FileOutputStream fos = new FileOutputStream(f);
        byte[] b = StrA.getBytes();
        for(byte bb : b)
            fos.write(bb);
        
        //创建字节流输入对象
        FileInputStream fis = new FileInputStream("f.txt");
        //一次可以读取出来的数量
        int i = fis.available();
        int c;
        byte[] br = new byte[i];
        for(c = 0; c<i; c++)
            br[c++] = fis.read();
        
        System.out.println("得到的文件:"+br.toString());
    }
文件存在
得到的文件:[B@6d06d69c

3. 字符流

package tet;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Arrays;


public class kk {
    
    public static void main(String[] args) throws IOException {
        File f = new File("f.txt");
        //字节流
        FileOutputStream  fos = new FileOutputStream (f);
        //字符流
        OutputStreamWriter osw= new OutputStreamWriter(fos,"UTF-8");
        
        //写入缓冲
        osw.append("hello");   //注意是从打开文件,从0开始追加,不是从末地址开始追加
        osw.append("world");
        //关闭字符流
        osw.close();
        //关闭字节流
        fos.close();
        
        if(f.exists())
        {
            System.out.println("文件存在");
        }else{
            System.out.println("文件不存在");
        }
        
        //字节流
        FileInputStream fis = new FileInputStream(f);
        //字符流
        InputStreamReader isr= new InputStreamReader(fis,"UTF-8");
        //因为这个字符串会不断变化,String一旦确认,就不能再变化了
        StringBuffer bs = new StringBuffer();
        
        while(isr.ready()){
            bs.append((char)isr.read());
        }
        System.out.println(bs.toString());
        //关闭字符流
        isr.close();
        //关闭字节流
        fis.close();
    }

}

结果:

文件存在
helloworld
原文地址:https://www.cnblogs.com/maogefff/p/8084841.html