android IO流 写入 读出

 

String –> InputStream

InputStrem is = new ByteArrayInputStream(str.getBytes());

ByteArrayInputStream stream = new ByteArrayInputStream(str.getBytes());

InputStream–>String

inputStream input;

StringBuffer out = new StringBuffer();
     byte[] b = new byte[4096];
     for (int n; (n = input.read(b)) != -1;) {
      out.append(new String(b, 0, n));
     }
out.toString();

or

               InputStream in ;        
                BufferedReader br = null;
        try {
             br = new BufferedReader(new InputStreamReader(in));
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }

        StringBuffer sb = new StringBuffer();
        String tmp;
        try {
            while ((tmp = br.readLine()) != null) {
                sb.append(tmp + "\n");
            }
            br.close();
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sb.toString();

Reader –>String

BufferedReader in = new BufferedReader(new InputStreamReader(is));
StringBuffer buffer = new StringBuffer();
String line = " ";
while ((line = in.readLine()) != null){
buffer.append(line);
}
return buffer.toString();

String–>Reader

Reader reader = null;
BufferedReader r = new BufferedReader(reader);
StringBuilder b = new StringBuilder();
String line;
while((line=r.readLine())!=null) {
b.append(line);
b.append(“\r\n”);
}
b.toString();

FileUtils

View Code
public class FileUtils {
    private String SDPATH;

    private int FILESIZE = 4 * 1024;

    public String getSDPATH() {
        return SDPATH;
    }

    public FileUtils() {
        // 得到当前外部存储设备的目录( /SDCARD )
        SDPATH = Environment.getExternalStorageDirectory() + "/";
    }

    /**
     * 在SD卡上创建文件
     * 
     * @param fileName
     * @return
     * @throws IOException
     */
    public File createSDFile(String fileName) throws IOException {
        File file = new File(SDPATH + fileName);
        file.createNewFile();
        return file;
    }

    /**
     * 在SD卡上创建目录
     * 
     * @param dirName
     * @return
     */
    public File createSDDir(String dirName) {
        File dir = new File(SDPATH + dirName);
        dir.mkdir();
        return dir;
    }

    /**
     * 判断SD卡上的文件夹是否存在
     * 
     * @param fileName
     * @return
     */
    public boolean isFileExist(String fileName) {
        File file = new File(SDPATH + fileName);
        return file.exists();
    }

    /**
     * 将一个InputStream里面的数据写入到SD卡中
     * 
     * @param path
     * @param fileName
     * @param input
     * @return
     */
    public File write2SDFromInput(String path, String fileName,
            InputStream input) {
        File file = null;
        OutputStream output = null;
        try {
            createSDDir(path);
            file = createSDFile(path + fileName);
            output = new FileOutputStream(file);
            byte[] buffer = new byte[FILESIZE];
            while ((input.read(buffer)) != -1) {
                output.write(buffer);
            }
            output.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                output.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return file;
    }

    /**
     * 在sd卡中读出文本文件 返回String * strFullPath 读取文件的完整路径
     */
    public String ReadSDFiled(String strFullPath) {

        File file = new File(SDPATH + strFullPath);
        InputStream in = null;
        try {
            in = new BufferedInputStream(new FileInputStream(file));
        } catch (FileNotFoundException e3) {
            e3.printStackTrace();
        }

        BufferedReader br = null;
        try {
            /* 转换编码 */
            br = new BufferedReader(new InputStreamReader(in, "gb2312"));
            /* 不转换编码 */
            // br = new BufferedReader(new InputStreamReader(in));
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }

        StringBuffer sb = new StringBuffer();
        String tmp;
        try {
            while ((tmp = br.readLine()) != null) {
                sb.append(tmp + "\n");
            }
            br.close();
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sb.toString();
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值