首页 > 编程知识 正文

(Java IO_文件流 尚学堂176)

时间:2023-05-03 23:17:19 阅读:121299 作者:3401

在InputStream中处理时:

//3、操作(读取) int temp; while((temp=is.read ) )!=-1 ) system.out.println((char ) temp ); (} (char ) temp遇到中文字符时,字节数可能不够,因此可能无法旋转。 英语文字没有任何问题。

FileReader很容易处理,内部不需要管理它。 这样的话,很少会发生乱码问题,其内部已经处理完毕。

FileInputStream可以处理字节数组,FileReader可以处理字符数组。 所谓字符数组,也就是字符串。

Reader抽象类的API文档:

Writer抽象类的API文档:

Writer抽象类具有append方法,可以直接传播. append ().append ().append (.append ) )。 这与StringBuilder和StringBuffer尚学堂16 )相似。 (链接: Java StringBuilder和StringBuffer尚学堂116那是流动模式。

流模式:不是IO流的流。 流. append ().append ().append ().append () ) ) )可以一直单击并始终返回的是this对象。

import java.io.File; import java.io.FileInputStream; import Java.io.file not found exception; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.Reader; public class test { publicstaticvoidmain (字符串[ ] args ) )//1,创建方filesrc=newfile('ABC.txt ' ); //2,选择流reader reader=空; try{reader=newfilereader(src; //3、char[] flush=new char[1024]; //缓冲罐int len=-1; //接收信长while((len=reader.read ) flush ) )!=-1 )//字符数组---字符串stringstr=newstring(flush,0,len ); system.out.println(str; }catch(filenotfoundexceptione ) {e.printStackTrace ); }catch(ioexceptione ) {e.printStackTrace ); }finally {//4、释放资源并分别关闭先打开的{/} try { if (null!=reader(reader.close ); }catch(ioexceptione ) {e.printStackTrace ); } }输出结果:

I am going to study java。

这一行是中文字符。

可以看出即使文件中有中文字符也能正确输出。

由于FileReader操作字符数组,因此缓冲区容器的数据类型为char[]

它已经是字符数组,不存在解码,作为字符数组的字符串,直接字符数组作为字符串构建。

更改为一个字符一个字符地阅读没有乱码问题:

char[] flush=new char[1]; //缓冲罐输出结果:

I

a

g

o

I

n

g

t

o

s

t

欧陆

d

y

Jj

a

v

a

水平。

这是

的双曲正弦值

句子

车票。

import java.io.File; import Java.io.file not found exception; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; public class test { publicstaticvoidmain (字符串[ ] args ) )//1,创建方filesrc=newfile('ABC.txt ' ); //2、选择流写入器写入器=null; try{writer=newfilewriter(src; //3、String msg='IO is so easy操作(导出! 尚学堂; char[] datas=msg.toCharArray (; //字符串--字符数组writer.write(datas,0,datas.length ); writer.flush (; }catch(filenotfoundexceptione ) {e.printStackTrace ); }catch(ioexceptione ) {e.printStackTrace ); }finally {//4、释放资源并分别关闭先打开的{/} try { if (null!=writer(writer.close ); }catch(ioexceptione ) {e.printStackTrace ); } }运行后:

写法2 :

import java.io.File; import Java.io.file not found exception; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; public class test { publicstaticvoidmain (字符串[ ] args ) )//1,创建方filesrc=newfile('ABC.txt ' ); //2、选择流写入器写入器=null; try{writer=newfilewriter(src; //3、String msg='IO is so easy操作(导出! 尚学堂; writer.write(msg; writer.flush (; }catch(filenotfoundexceptione ) {e.printStackTrace ); }catch(ioexceptione ) {e.printStackTrace ); }finally {//4、释放资源并分别关闭先打开的{/} try { if (null!=writer(writer.close ); }catch(ioexceptione ) {e.printStackTrace ); } }写法3 :

import java.io.File; import Java.io.file not found exception; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; public class test { publicstaticvoidmain (字符串[ ] args ) )//1,创建方filesrc=newfile('ABC.txt ' ); //2、选择流写入器写入器=null; try{writer=newfilewriter(src; //3、writer.append(ioissoeasy! '.append (尚学堂); writer.flush (; }catch(filenotfoundexceptione ) {e.printStackTrace ); }catch(ioexceptione ) {e.printStackTrace ); }finally {//4、释放资源并分别关闭先打开的{/} try { if (null!=writer(writer.close ); }catch(ioexceptione ) {e.printStackTrace ); } }请注意,这只能处理文字文件,不能处理图像等。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。