Java实现文件的读写
阅读原文时间:2023年07月10日阅读:2

需求:实现基本的读写

package com.sbx.io;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;

/**
* Created by BlueLover
* Name:苏半夏
* Date:2021/2/26
* Time:11:00
*/
public class MyFileTest {
/**
* 使用FileOutputStream类向文件中写入数据与使用FileInputStream类从文件中将内容读出来,都存在一点不足,即这两个类值提供了对字节或字节数组的读取方法。由于汉字在文件中占用两个字节,如果使用字节流,读取不好可能会出现乱码现象,此时采用字符流Reader或Writer类即可避免这种现象。
*/

String text;  
//读取文件的方法  
public void ReadFile(File file){  
    try{  
        //读取文件中的内容  
        FileReader in = new FileReader(file);  
        char byt\[\] = new char\[2\];  
        int len;  
        System.out.println("文件中的信息是:");  
        while((len = in.read(byt))!=-1){  
            System.out.print(new String(byt,0,len));  
            text += new String(byt,0,len);  
        }  
        in.close();  
        text = this.text.substring(4);  
        System.out.println(text);  
    } catch (StringIndexOutOfBoundsException e1){  
        System.out.println("文件内容为空");  
    } catch (Exception e){  
        e.printStackTrace();  
    }  
}

//写入文件的方法  
public void WriteFile(File file){  
    try{  
        /\*\*  
         \* 为了避免原有内容被覆盖,我们需要先读取出原有的内容  
         \*/  
        this.ReadFile(file);  
        //写入文件  
        FileWriter out = new FileWriter(file);  
        System.out.println("请输入要写入的内容:");  
        Scanner scanner = new Scanner(System.in);  
        String newText = scanner.next();  
        System.out.println("是否覆盖原有内容?请选择:1-是    2-否  ");  
        if (Integer.parseInt(scanner.next())==1){  
            System.out.println("您选择覆盖原有内容");  
            out.write(newText);  
        }else{  
            System.out.println("您选择不覆盖原有内容");  
            out.write(this.text);  
            out.write(newText);  
        }  
        scanner.close();  
        out.close();  
    }catch (Exception e){  
        e.printStackTrace();  
    }  
}

public static void main(String\[\] args) {  
    File file = new File("test.txt");  
    MyFileTest myFileTest = new MyFileTest();  
    System.out.println("============读取==============");  
    myFileTest.ReadFile(file);  
    System.out.println("============写入==============");  
    myFileTest.WriteFile(file);  
    System.out.println("============写入后读取==============");  
    myFileTest.ReadFile(file);  
}  

}

/*
潇洒如我最近却变得有点敏感
半小时收不到你讯息就会坐立不安
都说别爱的太满 这道理知易行难
我还挺乐意享受这份甜中微酸
你的笑像西瓜最中间那一勺的口感
点亮了一整个夏天 星空也为你斑斓
我不会深情款款上演什么套路桥段
我的爱纯粹简单
*/