2 u011371270 u011371270 于 2016.05.08 17:22 提问

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

代码如下

 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
danielinbiti   Ds   Rxr 2016.05.08 17: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();
        }
    }
qq_27222635
qq_27222635   2016.05.08 18:07

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(); } }

baidu_23086307
baidu_23086307   2016.05.10 07:08

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(); } }

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
一份简单的代码演示缓冲区溢出的危害
最近学习到《深入理解计算机系统》这边书的3.12节的缓冲区溢出,于是写了个简单的测试代码演示了一下通过缓冲区溢出是如何神不知鬼不觉的运行一段代码的。 先上代码运行后再分析: #include void hit() { unsigned char buff[ 100 ] = { 0,0,0,0, //返回地址 'B','O','M','B','\0', 0x83,0xc4,0x80
一段代码解析JAVA中的多态
直接贴代码
请教一段查询代码
我想请教一下vf的一段查询代码,当输入楼栋号时能查询出楼栋信息,并且显示在下方的表格中,我运行程序时一直提示不能识别的成员text1,我是在页框中写的程序,求帮助,谢谢!
天气预报程序
android城市天气预报代码,详细解释。
Android人脸识别源码——详细代码解释
Android人脸识别源码——详细代码解释
机器学习实战(第2章)代码注解
纯为自己学习所用# -*- coding: utf-8 -*- """ Created on Fri Mar 04 17:56:28 2016 @author: aihid """ from numpy import * import operator from os import listdir """ 创建一个基本的数据包 """ def createDataSet(): gr
ADO.NET详细代码解释
ADO.NET详细代码解释 ADO.NET详细代码解释 ADO.NET详细代码解释 ADO.NET详细代码解释
全网最简单!步骤超详细!小白也能看懂的深度学习安装教程(caffe版)!
想入门深度学习?环境装不上? 不存在的! 小白专属福利——手把手教会你安装一个属于自己的深度学习环境!
请教一段代码,finish()出错,
finish()报错,划红线,显示为The method finish() is undefined for the type new View.OnClickListener(){},求大神帮忙下,在代码的最后几行 operatorClickListener = new OnClickListener() { @Override public void onClick(View v) {
C语言基础(新手)---贪吃蛇代码参考交流~~~
本人小白,欢迎逛楼大佬指导和交流。现阶段只在15pb学习C语言(c++),所以代码都是C语言(注释也是比较多.....)。写贪吃蛇的时候还不熟悉c++的类的部分,也没有分装文件,所以直接就是按C语言的意思直接写上// snake.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <w...