寒假Day59:javaIO流

文件的一些相关操作:

java.io.File类 计算机系统中的文件和文件夹
File不能访问文件内容本身,访问文件内容本身需要使用输入输出流
文件流;缓冲流 数据流的读写基于内存的操作

import java.io.File;
import java.io.IOException;

public class B {
    public static void main(String[] args) {//获取文件
        File f = new File("/Users/cih/Desktop/abc/tt.txt");
        //System.out.println(f.getName());//获取当前文件目录,最后一级 tt.txt

        f.renameTo(new File("/Users/cih/Desktop/abc/tt1.txt"));//重命名操作
        File f1 = new File("/Users/cih/Desktop/abc/tt2.txt");
        if (!f1.exists()) {
            try {
                f1.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        File f2 = new File("/Users/cih/Desktop/abc/123");
        f2.mkdir();//创建单层目录。一层层创建 ,创建123文件夹
        //f2.mkdirs();//直接创建多层目录
    }
}

注意一下:获取文件路径的时候

windows系统:打开文件所在位置,上面有一个框框复制里面的东西即可

复制过后:一个\是转义符,\\才代表一个斜杠 这个时候对象f就是tt.txt文件,\在文件中是路径的分隔符。在java中\\或者/才是文件的分隔符或者File.separator

路径例如以下这样子的写法: 

D:\\text\\abc\\tt.txt

Mac系统下:

将文件拖入终端即可显示其所在位置,

注意:直接复制即可

File f = new File("/Users/cih/Desktop/abc/tt.txt");

具体方法:

IO流一定要抛异常,否则就会报错,如下:


文件字节流

具体操作写在注释里了:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class CC {

    public static void main(String[] args) {
        CC.FileInputStream();
        CC.FileOutputStream();
    }

    //文件字节输入流
    public static void FileInputStream() {
        try {
            FileInputStream in = new FileInputStream("/Users/cih/Desktop/abc/tt1.txt");

            byte[] b = new byte[100];
            int len = 0;
            while ((len = in.read(b)) != -1) {//要写括号
                System.out.println(new String(b, 0, len));//数组、need起始位置转换、读取长度
            }
            in.close();//流在使用完毕后要关闭

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //文件字节输出流
    public static void FileOutputStream() {
        try {
            FileOutputStream out = out = new FileOutputStream("/Users/cih/Desktop/abc/tt3.txt");
            //输出到哪一个文件里,新建tt3
            String str = "jidgidjgiodjgd";
            out.write(str.getBytes());//这里面需要byte类型参数,所以转化一下
            //把数据写入内存中
            out.flush();//把内存中的数据写到硬盘
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 }

强调:IO流一定要捕获异常

捕获操作如下:

会出现红色波浪线,鼠标放在上面;

会跳出以下内容: 

点击More actions之后点击trt/catch即可


文件字符流

和文件字节流差不多,但是一些细节需要注意

import java.io.*;

public class CC {

    public static void main(String[] args) {
        CC.FileReader("/Users/cih/Desktop/abc/tt1.txt");
        CC.FileWriter("Hello,world!","/Users/cih/Desktop/abc/tt5.txt");//tt5本来不存在
    }

    //文件字符输入流
    public static void FileReader(String inPath) {
        try {
            FileReader fr = new FileReader(inPath);//创建字符输入流的对象
            char[] b = new char[100];//创建临时存放数据的字符数组,这里是char
            int len = 0;
            while ((len = fr.read(b)) != -1) {
                System.out.println(new String(b, 0, len));//数组、need起始位置转换、读取长度
            }
            fr.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //文件字符输出流
    public static void FileWriter(String text,String outPath) {//输出的内容、文件
        try {
            FileWriter fw =new FileWriter(outPath);
           fw.write(text); //把数据写入内存中
            fw.flush();//把内存中的数据刷到硬盘
            fw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 }
原文地址:https://www.cnblogs.com/OFSHK/p/12553726.html