【2011/3/2】(2) 算法加密技术中的公钥与私钥

(1)关于readLine()方法,readLine方法是BufferedReader类的方法,此方法是对字符进行操作的类,如果到达流末尾,则返回null,
此方法在无法直接使用字符编码的流中无法使用,在网络传输的过程中Http协议传输的字节流可能是任何形式的数据,可能是某种
编码的字符文本或者是二进制的其它文件如图片、视频、音频等。
不能使用BufferedReader类的原因:
1.BufferedReader类的readLine方法在无法直接使用字符编码的流中无法使用,在网络传输的过程中Http协议传输的字节流可能是任何形式的数据,可能是某种
编码的字符文本或者是二进制的其它文件如图片、视频、音频等。
2.BufferedReader类的readLine方法在读取一行数据的时候不是一碰见就返回一行的,而是读取一个数据段回来,对该数据段进行分析其中的/r/n字符,然后返
回一行的,这就导致我们在读取到一个空行的时候该流的下一个读取点并不就在这个空行的位置,而是包含了空行下面的消息实体的部分信息的,无法精确的定
位空行分隔点。

换行 ('/n')、回车 ('/r')
遇到的问题需求如下:从一个连续不断的字节流中读取判断一个空行,然后提取空行前后的数据。
解决此问题:
1.需要一个可以读取一行的字节操作InputStream包装类
核心算法,此算法版权归属刘亚超
 //此算法是首读取两个字节的数字分别存储,判断如果首次读取的x就是-1直接返回null,
// 然后每次向后挪动一个字节的位置,进行比较/r和/n,并存储x的值,如果y值为0则break跳出循环返回最后一个串
 public String readLine() throws IOException{
  
  int x = ips.read();
  if(x==-1)
   return null;
  int y = ips.read();
  
  while(!(x=='/r' & y=='/n')){
   baos.write(x);
   x = y;
   y = ips.read();
   if(y==-1)
    break;
  }
  
  String result = new String(baos.toByteArray());
//  System.out.println(baos.toByteArray().length);
  baos.reset();
//  System.out.println(result);
  return result;
 }

2.使用该类来读取行设计条件当读到一个行的信息为一个空的字符串的时候即找到了该分割点,问题得以解决。
 String line = iis.readLine();
   while(line!=null && !line.equals("")){
    System.out.println(line);
    line = iis.readLine();
   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值