IO读写方案

Posted 纯真的梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO读写方案相关的知识,希望对你有一定的参考价值。

第一套:字节流读取写入方案

FileInputStream :字节流方式读取文本文件

FileOutputStream:字节流写入硬盘

 

第二套:字符流读取写入方案

FileReader:字符流读取文本

FileWriter:字符流写入文本

 

第三套:

BufferedReader:自定义缓存大小,读取文本 8192char

BufferedWriter:写入文本

一般和FileReaderFileWriter结合使用

 

第四套:可以读取二进制(img图片等 )

DataInputStream:将本地的img加载到内存中

DataOutputStream::将内存中的二进制数据写入到硬盘上的某个文件中。

 

 

2.使用字节流读取文本文件

 

 //字节输入流练习:从文本文件读取各种数据(字母,字符串都支持)

 

   //声明流对象

 

try {

 

FileInputStream fis=new FileInputStream("c:\\ming.txt");

 

int data;

 

System.out.println("可读取的字节数:"+fis.available());

 

System.out.println("文件内容为:");

 

//循环读取数据

 

byte[] buffer=new byte[1024];

 

StringBuilder sb=new StringBuilder();

 

while ((data=fis.read(buffer))!=-1) {

 

//byte[]转为字符串

 

String str=new String(buffer,0,data,"gb2312");

 

sb.append(str);

 

}

 

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

 

} catch (Exception e) {

 

 

 

}

 

3.使用字节流写文本文件

 

 // 通过字节流将内存中的数据写入到硬盘上

 

FileOutputStream fos=null;

 

try {

 

String str="你是人间的四月天";

 

byte[] words=str.getBytes("gb2312");

 

//创建流对象,一追加方式写入文件

 

fos=new FileOutputStream("c:\\ming.txt",true);

 

//写入文件

 

fos.write(words,0,words.length);

 

System.out.println("文件已更新");

 

} catch (Exception e) {

 

System.out.println("创建文件时出错!");

 

}finally{

 

try {

 

if (fos!=null) {

 

fos.close();

 

}

 

} catch (Exception e2) {

 

   e2.printStackTrace();

 

}

 

}

 

4.使用字符流读取文本文件

 

//使用字符流读取文本文件

 

Reader fr=null;

 

try {

 

 fr=new FileReader("c:\\ming.txt");

 

char[] ch=new char[1024];//中转站,缓冲区

 

StringBuffer sbf=new StringBuffer();

 

int length=fr.read(ch);//将字符读入数组

 

//循环读取并追加字符

 

while (length!=-1) {

 

sbf.append(ch,0,length);

 

length=fr.read(ch);

 

}

 

System.out.print(sbf);

 

} catch (Exception e) {

 

   e.printStackTrace();

 

}finally{

 

try {

 

if (fr!=null) {

 

fr.close();

 

}

 

} catch (Exception e2) {

 

// TODO: handle exception

 

}

 

}

 

5.使用字符流写文本文件

 

//使用字符流写文本文件

 

FileWriter fw=null;

 

try {

 

fw=new FileWriter("c:\\ming.txt",true);

 

//写入信息

 

String words="叶丽仪-上海滩";

 

fw.write(words);

 

fw.flush();

 

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

 

 

 

} catch (Exception e) {

 

System.out.println("文件不存在");

 

}finally{

 

try {

 

if (fw!=null) {

 

fw.close();

 

}

 

} catch (Exception e2) {

 

e2.printStackTrace();

 

}

 

}

 

6.// 字符输入流BufferedReader读取文件

 

FileReader fr=null;

 

BufferedReader br=null;

 

try {

 

//创建一个FileReader对象

 

fr=new FileReader("c:\\ming.txt");

 

//创建一个BufferedReader对象

 

br=new BufferedReader(fr);

 

//读取一行数据

 

String line=br.readLine();

 

while (line!=null) {

 

System.out.println(line);

 

line=br.readLine();

 

}

 

} catch (Exception e) {

 

e.printStackTrace();

 

}finally{

 

try {

 

if (br!=null) {

 

br.close();

 

}if (fr!=null) {

 

fr.close();

 

}

 

} catch (Exception e2) {

 

e2.printStackTrace();

 

}

 

}

 

7.// 使用MyBufferedWriter来写入文本文件

 

FileWriter fw=null;

 

BufferedWriter bw=null;

 

try {

 

fw=new FileWriter("c:\\ming.txt",true);

 

bw=new BufferedWriter(fw);

 

//写入信息

 

bw.write("故乡的原风景");

 

bw.newLine();

 

bw.write("城里的月光-许美静");

 

bw.flush();

 

fw.close();

 

 

 

//读取文件内容

 

FileReader fr=new FileReader("c:\\ming.txt");

 

BufferedReader br=new BufferedReader(fr);

 

String line=br.readLine();

 

while (line!=null) {

 

System.out.println(line);

 

line=br.readLine();

 

}

 

} catch (Exception e) {

 

System.out.println("文件不存在");

 

e.printStackTrace();

 

}finally{

 

try {

 

if (bw!=null) {

 

bw.close();

 

}

 

if (fw!=null) {

 

fw.close();

 

}

 

} catch (Exception e2) {

 

// TODO: handle exception

 

}

 

}

 

8.// 使用字节流类DataOutputStream写二进制文件

 

DataOutputStream out=null;

 

DataInputStream dis=null;

 

try {

 

//创建输入流对象

 

FileInputStream fis=new FileInputStream("c:\\范宁.jpg");

 

dis=new DataInputStream(fis);

 

//创建输出流对象

 

FileOutputStream outFile=new FileOutputStream("c:\\范宁小美女33.jpg");

 

out=new DataOutputStream(outFile);

 

int temp=dis.read();

 

while (temp!=-1) {

 

out.write(temp);

 

temp=dis.read();

 

}

 

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

 

fis.close();

 

outFile.close();

 

} catch (Exception e) {

 

System.out.println("文件不存在");

 

}finally{

 

try {

 

if (dis!=null) {

 

dis.close();

 

}

 

if (out!=null) {

 

out.close();

 

}

 

} catch (Exception e2) {

 

e2.printStackTrace();

 

}

 

}

 

以上是关于IO读写方案的主要内容,如果未能解决你的问题,请参考以下文章

使用带缓冲的字节流读写数据

简单的文件读写---文件简单的加密解密

基础笔记10(IO 1.7try-with-resource)

廖雪峰老师python教程——IO编程

C# 之 读写文件

Android中对文件的读写进行操作