Chinaunix首页 | 论坛 | 博客
  • 博客访问: 122843
  • 博文数量: 29
  • 博客积分: 652
  • 博客等级: 上士
  • 技术积分: 340
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-03 21:26
文章分类

全部博文(29)

文章存档

2013年(8)

2012年(21)

分类: Java

2012-02-28 15:54:33

1,byte[]的长度

写了一个从文件里读字符串的函数:
  1. public static String readFile(String fFileName){//, String fEncoding) {

  2.         char[] buffer = new char[1024];
  3.         StringBuilder text = new StringBuilder();
  4.         InputStreamReader reader = null;
  5.         try {
  6.             reader = new InputStreamReader(new FileInputStream(fFileName));
  7.             while (reader.read(buffer, 0, 1024)!=-1){
  8.                 text.append(buffer);  <==有错
  9.             }
  10.         }
  11.         catch(Exception e){
  12.             e.printStackTrace();
  13.         }
  14.         finally{
  15.             if(reader!=null){
  16.                 try {
  17.                     reader.close();
  18.                 } catch (IOException e) {
  19.                     // TODO Auto-generated catch block
  20.                     e.printStackTrace();
  21.                 }
  22.             }
  23.         }

  24.         return text.toString();
  25.     }
粗看这段代码没有问题。但是读出的字符总比实际要多。问题在text.append(buffer)。 buffer是一个1024的char数组。每次append固定的1024个char。改成就好了。
  1.         reader = new InputStreamReader(new FileInputStream(fFileName));
  2.         int readed;
  3.         while ((readed = reader.read(buffer, 0, 1024))!=-1){
  4.             text.append(new String(buffer, 0, readed));
  5.         }

2,优先级的错误

  1. Log.d(TAG, "location="+where+", "+locationService==null?"null":locationService.getLocation());
这行代码的本意是如果locationService==null,就输出“null”,避免NullPointerException。但实际上仍然发生NullPointerException。原来"+"的优先级大于"?",所以上面代码实际上是:
  1. Log.d(TAG, ("location="+where+", "+locationService)==null?"null":locationService.getLocation())
括号里的当然不会是null。改成
  1. Log.d(TAG, "location="+where+", "+(locationService==null?"null":locationService.getLocation()));
就好了。
阅读(1507) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

1471893852012-03-02 03:13:12

恩呢,总结的不错!

忘忧草5552012-02-28 23:33:01

以前学java时到是经常犯这几个错误,只是当时没有总结

谢谢了,虽然现在没有做java方面的工作