Java输入/输出流体系详解

2025-05-27 0 32

在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘

java输入/输出流体系

1.字节流和字符流

字节流:按字节读取。字符流:按字符读取。

字符流读取方便,字节流功能强大,当不能用字符流时,可以用字节流。

字节流基类:inputstream、outputstream

inputstream方法:

Java输入/输出流体系详解

outputstream方法:

Java输入/输出流体系详解

字符流基类:reader、writer

reader方法:

Java输入/输出流体系详解

writer方法:

Java输入/输出流体系详解

2.输入输出流体系

Java输入/输出流体系详解

3.转换流

inputstreamreader:字节输入流->字符输入流的转换

outputstreamwriter:字节输出流->字符输出流的转换

例如:字节输入流->字符输入流的转换

字节流使用不方便,而普通的reader读取也不太方便,转换成bufferreader,利用bufferreader的readline(),一次读取一行。

?

1

2

3

4

5

6

7
bufferedreader reader = new bufferedreader(new inputstreamreader(inputstream));

string result = "";

string line = "";

while((line = reader.readline())!= null){

result = result+ line;

}

system.out.println(result);

inputstream to string:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23
private static string changeinputestream(inputstream inputstream,string encode) {

//通常叫做内存流,写在内存中的

bytearrayoutputstream outputstream = new bytearrayoutputstream();

byte[] data = new byte[1024];

int len = 0;

string result = "";

if(inputstream != null){

try {

while((len = inputstream.read(data))!=-1){

outputstream.write(data, 0, len);

}

//result是在服务器端设置的dopost函数中的

result = new string(outputstream.tobytearray(),encode);

outputstream.flush();

outputstream.close();

inputstream.close();

} catch (ioexception e) {

// todo auto-generated catch block

e.printstacktrace();

}

}

return result;

}

inputstream->stringbuffer:

?

1

2

3

4

5

6

7

8

9

10

11

12
stringbuffer buffer = new stringbuffer();

inputstreamreader reader =new inputstreamreader(request.getinputstream(),"utf-8");

char[] requestchar = new char[5];

if(reader != null){

system.out.println("默认编码:"+reader.getencoding());//默认编码:utf8

}

//buffer reader.readline()

while((temp = reader.read(requestchar))!=-1){

buffer.append(requestchar, 0, temp);

system.out.println(buffer.tostring());

}

string result = buffer.tostring();

4.文件读写:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35
class kaoshi

{public static void main(string[] args){

scanner in=new scanner(system.in);

int score=0; //分数;

stringbuffer answer=new stringbuffer();//存放用户答案,动态字符串;

string result="acdd"; //正确答案;

try{

filereader file=new filereader("test.txt"); //打开文件;

bufferedreader intw=new bufferedreader(file); //缓冲流,按行读;

string s=null;

while((s=intw.readline())!=null){ //判断不为空;

if(!s.startswith("*")){

system.out.println(s);

}

else{

system.out.println("请输入正确答案:");

string str=in.next();

char c= str.charat(0);//收集答案;

answer.append(c);

}

}

}catch(ioexception e){

e.printstacktrace();

}

for(int i=0;i<result.length();i++){

if(result.charat(i)==answer.charat(i)||

result.charat(i)==answer.charat(i)-32){

score+=25;

}

}

system.out.println(score);

}

}

总结

以上就是本文关于java输入/输出流体系详解的全部内容,希望对大家有所帮助。如有不足之处,欢迎留言指出,期待您的宝贵意见。

原文链接:http://www.cnblogs.com/jycboy/p/5301184.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java输入/输出流体系详解 https://www.kuaiidc.com/77492.html

相关文章

发表评论
暂无评论