我是靠谱客的博主 幸福大白,最近开发中收集的这篇文章主要介绍java io 缓存读取_Java 文件IO写入读取四种方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第一种:字节流 FileInputStream  FileOutputStream

1.1 读取操作

//先创建一个和硬盘连接的流(打通硬盘和内存的通道)

FileInputStream fis = new FileInputStream("D:\Demo.txt");

//创建缓存区大小是1k

byte[] bytes = new byte[1024];

int data = 0; //存储有效字节数

StringBuffer sb = new StringBuffer();

//由于文件大小通常远远大于缓冲区大小,所以要循环读取

while((data = fis.read(bytes)) != -1){//返回-1则文件读取完毕,停止循环读取

String temp=new String(bytes,0,data);//读取缓冲区的字节数,转换成字符串

sb.append(temp);

System.out.printlb("====有效字节数===="+data);

}

System.out.printlb(sb.toString());

//关闭流

fis.close();

1.2 写入操作

//创建一个读取文件的流

FileOutputStream fos = new FileOutputStream("E:\Demo.txt");

String temp = "海内存知己,天涯若比邻。";

//把字符串分解成字节,填到字节数组中

byte[] bytes = temp.getBytes();

//写入到指定路径,没有则创建文件

fos.write(bytes);

//关闭流

fos.close();

System.out.println("写入成功!");

第二种:字符流 char   FileReader FileWriter

tips:在不同操作系统和编码方式下,char和byte之间的关系不是固定的

一般认为:gbk/gb2312     2个byte

utf-8                3个byte

2.1  读取操作

Reader fr = new FileReader("E:\Demo.txt");char ch[] = new char[1024];

StringBuffer sbf= newStringBuffer();int length =fr.read(ch);while (length != -1) {

sbf.append(ch);

length=fr.read();

}

System.out.println(sbf.toString());

fr.close();

2.2  写入操作

Writer fr = new FileWriter("D:\Demo.txt");

fr.write("有朋自远方来,不亦乐乎");

fr.close();

第三种:带缓冲区的字符读取和写入方案

BufferedReader

BufferedWriter  缓冲区  存储的数据量默认是1024byte

3.1  读取操作

Reader fr = new FileReader("D:\Demo.txt");

BufferedReader br = new BufferedReader(fr);

String line = br.readLine();

while (line != null) {

System.out.println(line);

line = br.readLine();

}

br.close();

fw.close();

3.2  写入操作

Writer fw = new FileWriter("D:\Demo.txt",true);//true 为连续追加

BufferedWriter bw = new BufferedWriter(fw);

bw.write("学而时习之,不亦説乎");

bw.close();

fw.close();

第四种:二进制方式的读取和写入方案

DataInputStream

DataOutputStream

读写操作:复制粘贴

InputStream is = new FileInputStream("E:\春暖花开.jpg");

DataInputStream dis = new DataInputStream(is);

OutputStream ops = new FileOutputStream("D:\春暖花开.jpg");

DataOutputStream dos = new DataOutputStream(ops);

byte[] bytes = new byte[1024];

int date = 0;

while ((date = dis.read(bytes)) != -1) {

dos.write(bytes,0,date);

}

dos.close();

ops.close();

dis.close();

is.close();

System.out.println("复制成功");

最后

以上就是幸福大白为你收集整理的java io 缓存读取_Java 文件IO写入读取四种方法的全部内容,希望文章能够帮你解决java io 缓存读取_Java 文件IO写入读取四种方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部