java字符流和字节流写入读取文件

⌚Time: 2021-08-24 00:16:59

👨‍💻Author: Jack Ge

FileOutputStream类使用字节流操作文件,文件每次读取/写入以字节为单位

import java.io.*;
 
public class FileByte{
 
    public static void main(String...args){
 
        File file=new File("D:\\test.txt");
        if(!file.exists())
            try{
                file.createNewFile();
            }catch(Exception e){
                e.printStackTrace();
            }
        try{
            FileOutputStream out=new FileOutputStream(file);
            byte bt[]="i eat apple".getBytes();
            out.write(bt);
            out.close();
        }catch(Exception e){
            e.printStackTrace();
        }
        try{
            FileInputStream in=new FileInputStream(file);
            byte bt1[]=new byte[1024];
            int len=in.read(bt1);
            System.out.println("文件中的信息是:"+new String(bt1,0,len));
            in.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
 
}

FileWriter类使用字符流操作文件,文件每次读取/写入以字符(2字节)为单位,由于汉字占用两个字节,因此用字符流操作比较合适

import java.io.*;
 
public class FileChar{
 
    public static void main(String...args){
 
        File file=new File("D:\\test.txt");
        if(!file.exists())
            try{
                file.createNewFile();
            }catch(Exception e){
                e.printStackTrace();
            }
        try{
            FileWriter out=new FileWriter(file);
            String s="我爱吃苹果";
            out.write(s);
            out.close();
        }catch(Exception e){
            e.printStackTrace();
        }
        try{
            FileReader in=new FileReader(file);
            char bt1[]=new char[1024];
            int len=in.read(bt1);
            System.out.println("文件中的信息是:"+new String(bt1,0,len));
            in.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
 
}