Java中文件保存与读取

使用FileInputStream类和FileOutPutStream类对文件进行读写

特点:专门用于处理字符

public static void main(String[] args) {
        //FileInputStream类和FileOutPutStream类
        File file = new File("G:\\test\\text.txt");
        try{
            FileOutputStream out = new FileOutputStream(file);
            String content = "你见过凌晨4点中国北京的样子吗";
            byte by[] = content.getBytes();
            out.write(by);
            out.close();
        }catch (Exception e){

        }
        try{
            FileInputStream fileInputStream = new FileInputStream(file);
           byte byt[] = new byte[1024];
           int len = fileInputStream.read(byt);
           System.out.println("文件中的信息为:" + new String(byt,0,len));
        }catch (Exception e){

        }
    }

FileReader和FileWriter类

FileReader与FileWriter类操作的数据单元是一个字符,如果文件中有中文字符,那么使用FileReader类与FileWriter类读写文件时会避免乱码产生

public class IOtest {
    public static void main(String[] args) throws IOException {
        //FileInputStream类和FileOutPutStream类
        File file = new File("G:\\test\\text1.txt");
        //向文件中写入新数据时不覆盖已存在数据
        FileWriter fileWriter = new FileWriter(file,true);
        fileWriter.write("你好啊,中国");
        fileWriter.close();

        FileReader fileReader = new FileReader(file);
        char[] chars = new char[1024];
        int len = fileReader.read(chars);
        System.out.println(new String(chars,0,len));
        fileReader.close();
    }
}

带缓冲区的BufferdInpuStream类与BufferedOutPutStream类

import java.io.*;
import java.nio.Buffer;
import java.util.Scanner;

public class IOTest {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String FileContent = scanner.next();
        save("text.txt",FileContent);
        System.out.println("输出内容为====>>"+read("text.txt"));
    }


    public static void save(String FileName,String FileContent){
        File file = new File("I:\\"+FileName);
        FileOutputStream fileOutputStream = null;
        BufferedOutputStream bufferedOutputStream =null;
        try {
            fileOutputStream = new FileOutputStream(file);
            bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
            byte[] bytes = new byte[1024];
            bytes = FileContent.getBytes();
            bufferedOutputStream.write(bytes);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally {
            try {
                bufferedOutputStream.close();
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }


    public static String read(String FileName){
        File file = new File("I:\\"+FileName);
        FileInputStream fileInputStream = null;
        BufferedInputStream bufferedInputStream = null;
        FileReader fileReader = null;
        String Content =null;
        try {
            fileInputStream = new FileInputStream(file);
            bufferedInputStream = new BufferedInputStream(fileInputStream);
            byte[] bytes = new byte[1024];
            int len = bufferedInputStream.read(bytes);
            Content = new String(bytes,0,len);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally {
            try {
                bufferedInputStream.close();
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return Content;
    }
}

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值