Java进阶——java基础(三):IO流

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36981814/article/details/85113048

一、流的概念和作用

流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

二、Java流体系结构图

https://img-blog.csdnimg.cn/20181220103640923

三、Java流体系中常用

https://img-blog.csdnimg.cn/20181220103640945

四、Java IO流的分类

根据处理数据类型的不同分为:字符流和字节流

根据数据流向不同分为:输入流和输出流

五、Java IO流部分对象实例

//Java IO流测试
IOgutter iogutter = new IOgutter();
//System.out.println(iogutter.GetPath());
//iogutter.CreateDir();//创建目录
//iogutter.ReadDir();//读取目录
//iogutter.Delete_DirFile();//删除文件夹和文件
iogutter.Writetxt();//写入文件测试
iogutter.Readtxt();//读取文件测试
        
        



import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class IOgutter {
    /**
     * 获取应用程序运行目录
     *
     * @return
     */
    public String GetPath() {
        return Main.class.getResource("").getPath();
    }

    /**
     * 创建目录
     * File类有两个方法创建文件夹
     * ------| mkdir():创建一个文件夹,成功返回true、失败返回false
     * 失败表明对象指定的路径已经存在,或者由于该路径不存在,指定文件夹不能被创建
     * ------| mkdirs():创建一个文件夹和它的所有父文件夹
     */
    public void CreateDir() {
        String dirname = "/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test";
        File dir = new File(dirname);
        dir.mkdirs();

        //创建下面实例用于删除的文件夹以及文件
        File dir1 = new File(dirname + "/delete_test");
        dir1.mkdir();
        CreateTxtFile(dirname);//创建文件
    }

    /**
     * 创建文件
     *
     * @param dirname
     */
    private void CreateTxtFile(String dirname) {
        File dir2 = new File(dirname + "/delete_test.txt");
        try {
            if (!dir2.exists())
                dir2.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 读取目录
     */
    public void ReadDir() {
        String dirname = "/G:/IntelliJIDEA.Worksapce/001/Dir_Test";
        File dir = new File(dirname);
        if (dir.isDirectory()) {
            System.out.println("目录:" + dirname);
            String file[] = dir.list();
            for (int i = 0; i < file.length; i++) {
                File f = new File(dirname + "/" + file[i]);
                if (f.isDirectory())
                    System.out.println(file[i] + "是目录");
                else
                    System.out.println(file[i] + "是文件");
            }
        } else
            System.out.println("不是目录");
    }

    /**
     * 删除文件夹和文件
     * 注意点:删除某一文件夹时必须保证该文件之下没有其他文件才能正确删除
     */
    public void Delete_DirFile() {
        File folder = new File("/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test");
        deleteFolder(folder);//删除文件以及目录
    }

    /**
     * 删除文件以及目录
     *
     * @param folder
     */
    private void deleteFolder(File folder) {
        File[] files = folder.listFiles();
        if (files != null) {
            for (File f : files) {
                if (f.isDirectory())
                    deleteFolder(f);
                else
                    f.delete();
            }
        }
        folder.delete();
    }

    /**
     * 写入文件测试
     */
    public void Writetxt() {
        File writename = new File("/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test/dir_test.txt");
        try {
            writename.createNewFile();//创建文件
            BufferedWriter out = new BufferedWriter(new FileWriter(writename));
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
            String Messasge = "";
            for (int i = 0; i < 3; i++) {
                Messasge += df.format(new Date()) + "dir_test00" + i+"\r\n";
            }
            out.write(Messasge);
            out.flush();
            out.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    /**
     * 读取文件测试
     */
    public void Readtxt() {
        File readname = new File("/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test/dir_test.txt");
        try {
            FileInputStream fileInputStream = new FileInputStream(readname);
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

            StringBuffer sb = new StringBuffer();
            String text = null;
            while((text = bufferedReader.readLine()) != null){
                sb.append(text+"\r\n");
            }
            System.out.println(sb.toString());
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36981814/article/details/85113048
今日推荐