关于文件

文件的创建

//File类 如何实例化
File file = new File("E:\\test\\abc\\xyz");
   if (!file.exists()) {
        file.createNewFile(); // 只能创建空文件
        file.mkdirs();//创建多级文件夹
    }
file.delete();//删除文件

流 Stream

流的分类

按方向分类 :输入流、输出流 -- 参照物是程序
按传输单位分类 :字节流、字符流
按功能分类 :节点流(低级流),缓冲流(高级流)
字节流 :一般用于传输 二进制 文件
InputStream
FileInputStream 字节节点输入流
OutputStream
FileOutputStream 字节节点输出流
字符流 :一般用于传输 纯文本 文件
Reader
FileReader 字符节点输入流
Writer
FileWriter 字符节点输出流
PrintWriter 打印流
BufferedWriter 缓冲流

向 E:\test.txt中写入 "java2班"
        // 1.创建FileWriter 字符节点输出流
        // 如果文件不能存在,输出流会自动创建该文件
        //
        FileWriter fileWriter = null;
//        BufferedWriter out = null;
        PrintWriter out = null;
        try {
            // 第二个参数默认是false,表示每次输出都是覆盖方式,true代表追加
            fileWriter = new FileWriter("E:\\test.txt",true);
            // 高级流包装低级流,所以构造器参数就是低级流
//            out = new BufferedWriter(fileWriter);
            out = new PrintWriter(fileWriter,true);
            // 低级流传输
//            fileWriter.write("java2班 文件与流\r\n");
            // 高级流
            out.println("java2班 文件与流");
            // 内容是写在管道里的,需要flush冲入文件
//            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("文件写入完毕...");

读取文件

FileReader fileReader = null;
try {
    fileReader = new FileReader("E:\\test.txt");
    // 缓存区 -- 暂存读取内容
    char c[] = new char[10];
    // 真正读取到的字符数
    int num = fileReader.read(c);
    while(num != -1){
        if(num != 10){
            for(int i = 0;i < num;i++){
                System.out.print(c[i]);
            }
        }else{
            for(char cc : c){
                System.out.print(cc);
            }
        }
        num = fileReader.read(c);
    }

} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
FileReader fileReader = null;
Scanner scanner = null;
try {
    fileReader = new FileReader("E:\\test.txt");
    scanner = new Scanner(fileReader);
    String str = scanner.nextLine();
    while(str != null){
        System.out.println(str);
        str = scanner.nextLine();
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (java.util.NoSuchElementException e){
            
}
FileReader fileReader = null;
BufferedReader bufferedReader = null;
try {
    fileReader = new FileReader("E:\\test.txt");
    bufferedReader = new BufferedReader(fileReader);
    String str = bufferedReader.readLine();
    while(str != null){
        System.out.println(str);
        str = bufferedReader.readLine();
    }
} catch (FileNotFoundException e) {
   e.printStackTrace();
} catch (IOException e) {
   e.printStackTrace();
}



转载:https://www.jianshu.com/p/6a130b6163f0

posted @ 2020-07-22 10:43  为什么要取名字  阅读(228)  评论(0编辑  收藏  举报