gpt4 book ai didi

Java输入/输出流体系详解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java输入/输出流体系详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在用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 。

最后此篇关于Java输入/输出流体系详解的文章就讲到这里了,如果你想了解更多关于Java输入/输出流体系详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com