漆黑天使复活 2016-05-08 09:22 采纳率: 44.4%
浏览 1235
已采纳

android小白请教一段代码的详细解释。。非常感谢

代码如下

 private String read(){
        try{
            FileInputStream fis=openFileInput(FILE_NAME);
            byte[] buff=new byte[1024];
            int hasRead=0;
            StringBuilder sb=new StringBuilder("");
            while ((hasRead=fis.read(buff))>0){
                sb.append(new String(buff,0,hasRead));
            }fis.close();
            return sb.toString();
        }catch (Exception e){
            e.printStackTrace();
        }return null;
    }
    private void write(String content){
        try
        {
            FileOutputStream fos=openFileOutput(FILE_NAME,MODE_APPEND);
            PrintStream ps=new PrintStream(fos);
            ps.println(content);
            ps.close();
        }catch (Exception E){
            E.printStackTrace();
        }
    }

我只知道定义了一个读取,写入的方法,但是具体里面每一句代码是干嘛的。。不是很清楚,求大神帮忙解释一下,非常感谢

  • 写回答

3条回答

  • danielinbiti 2016-05-08 09:34
    关注
      private String read(){
            try{
                FileInputStream fis=openFileInput(FILE_NAME);//打开文件读取
                byte[] buff=new byte[1024];//建立1k的缓冲区
                int hasRead=0;
                StringBuilder sb=new StringBuilder("");//建立字符串Builder对象,进行字符串连接比String快
                while ((hasRead=fis.read(buff))>0){  //读取文件,每次最多读入1k,如果到文件末尾,则会返回-1,所以这里用>0表示有内容,fis.read返回的是实际读取的字节数,比如到最后一点了,可能读不满1k数据
                    sb.append(new String(buff,0,hasRead));       //读取的内容添加到字符串中
                }fis.close();   //操作完文件后,必须关闭
                return sb.toString();   //返回读取的文件内容
            }catch (Exception e){
                e.printStackTrace();    //异常打印
            }return null;   //如果有异常,返回null
        }
        private void write(String content){
            try
            {
                FileOutputStream fos=openFileOutput(FILE_NAME,MODE_APPEND);   //打开文件写入,MODE_APPEND该模式下创建的文件其他应用无权访问,并且本应用将在原有的内容后面追加内容
                PrintStream ps=new PrintStream(fos);   //用PrintSteam便于输出字符串,而不仅仅字节流
                ps.println(content);   //写入内容
                ps.close();  //关闭文件
            }catch (Exception E){
                E.printStackTrace();
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 8月23日

悬赏问题

  • ¥15 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示