zoukankan      html  css  js  c++  java
  • Java-IO读写文件简单操作

      Java中读写文件的关键在于节点流和处理流的的选取上,而节点流和处理流又分为面向字节、面向字符两种处理模式,因此,需要根据实际的情况选择合适的处理模式,一般而言,往往尽量尝试使用面向字符的处理模式,如果程序代码无法编译成功,再尝试使用面向字节的的处理模式。

    1.节点流和处理流的分类(包括了面向字节和面向字符)

    2.读文件

    (1)创建文件路径对象

    // 通过File创建文件路径对象
    File filePath= new File("src/com/test/io/test.txt");

    (2)创建节点流对象(面向字符的处理模式)

    // 创建节点流对象(面向字符的处理模式)
    FileReader fr = new FileReader(filePath);

    (3)创建处理流包装节点流对象(面向字符的处理模式):

    // 创建处理流包装节点流对象(面向字符的处理模式)
    BufferedReader br = new BufferedReader(fr);

    (4)读取文件内容(ready():告诉这个流是否准备好被读取。返回值类型:boolean)

    // 读取文件内容
    while(br.ready()){
        System.out.println(br.readLine());
    }

    (5)关闭处理流、节点流等

    // 关闭处理流、节点流等
    br.close();
    fr.close();

    (6)测试

    新建文件:test.txt

    代码文件:demo.java

    package com.test.io;
    
    import java.io.*;
    
    public class demo {
        public static void main(String[] args) throws IOException {
            // 1.通过File创建文件路径对象
            File filePath= new File("src/com/test/io/test.txt");
    
            try {
                // 2.创建节点流对象(面向字符的处理模式)
                FileReader fr = new FileReader(filePath);
    
                // 3.创建处理流包装节点流对象(面向字符的处理模式)
                BufferedReader br = new BufferedReader(fr);
    
                // 4.读取文件内容
                while(br.ready()){
                    System.out.println(br.readLine());
                }
    
                // 5.关闭处理流、节点流等
                br.close();
                fr.close();
                
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
    
        }
    }    

    运行截图:

    3.写文件

    (1)创建文件路径对象

    // 通过File创建文件路径对象
    File filePath = new File("src/com/test/io/test2.txt");

    (2)创建节点流对象(面向字符的处理模式)

    // 创建节点流对象(面向字符的处理模式)
     FileWriter fw = new FileWriter(filePath);

    (3)创建处理流包装节点流对象(面向字符的处理模式):

    // 创建处理流包装节点流对象(面向字符的处理模式)
    BufferedWriter bw = new BufferedWriter(fw);

    (4)写入数据

    //写入数据
    bw.write("ABCDED
    ");
    bw.write("一二三四");

    (5)关闭处理流、节点流等

    // 关闭处理流、节点流等
    bw.close();
    fw.close();

    (6)测试:

    代码文件:demo.java

    package com.test.io;
    
    import java.io.*;
    
    public class demo {
        public static void main(String[] args) {
            // 1.通过File创建文件路径对象
            File filePath = new File("src/com/test/io/test2.txt");
    
            try {
                // 2.创建节点流对象(面向字符的处理模式)
                FileWriter fw = new FileWriter(filePath);
    
                // 3.创建处理流包装节点流对象(面向字符的处理模式)
                BufferedWriter bw = new BufferedWriter(fw);
    
                // 4.写入数据
                bw.write("ABCDED
    ");
                bw.write("一二三四");
    
                // 5.关闭处理流、节点流等
                bw.close();
                fw.close();
    
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    }

    运行截图:

  • 相关阅读:
    .NET Core部署到linux(CentOS)最全解决方案,常规篇
    C#规则引擎RulesEngine
    Angular—都2019了,你还对双向数据绑定念念不忘
    HTTP Error 500.30
    ConsoleUDPServer与ConsoleUDP
    基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection
    基于WMI获取USB设备信息(即获取插即用设备信息)----WMI使用的WIN32_类库名
    基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection
    C#使用Emgu.CV.dll进行图像处理---使用EmguCV获取摄像头和读取视频
    Windows 10系统“家庭版”到“专业版”的转换
  • 原文地址:https://www.cnblogs.com/komean/p/10276781.html
Copyright © 2011-2022 走看看