JAVA中读取文件转换为字符串

来源:互联网 发布:梁朝伟张曼玉 知乎 编辑:程序博客网 时间:2024/05/22 15:51

方式一
/**

  • 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

  • 当然也是可以读字符串的。

*/

/* 貌似是说网络环境中比较复杂,每次传过来的字符是定长的,用这种方式?*/public String readString1(){    try    {        //FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。         FileInputStream inStream=this.openFileInput(FILE_NAME);        ByteArrayOutputStream bos = new ByteArrayOutputStream();        byte[] buffer=new byte[1024];        int length=-1;        while( (length = inStream.read(buffer) != -1)        {            bos.write(buffer,0,length);            // .write方法 SDK 的解释是 Writes count bytes from the byte array buffer starting at offset index to this stream.            //  当流关闭以后内容依然存在        }        bos.close();        inStream.close();        return bos.toString();           // 为什么不一次性把buffer得大小取出来呢?为什么还要写入到bos中呢? return new(buffer,"UTF-8") 不更好么?        // return new String(bos.toByteArray(),"UTF-8");           }} 

方式二
// 有人说了 FileReader 读字符串更好,那么就用FileReader吧

// 每次读一个是不是效率有点低了?private static String readString2(){    StringBuffer str=new StringBuffer("");    File file=new File(FILE_IN);    try {        FileReader fr=new FileReader(file);        int ch = 0;        while((ch = fr.read())!=-1 )        {            System.out.print((char)ch+" ");         }        fr.close();    } catch (IOException e) {        // TODO Auto-generated catch block        e.printStackTrace();        System.out.println("File reader出错");    }    return str.toString();}

方式三
/按字节读取字符串/

/* 个人感觉最好的方式,(一次读完)读字节就读字节吧,读完转码一次不就好了*/

private static String readString3()

{

String str="";File file=new File(FILE_IN);try {    FileInputStream in=new FileInputStream(file);    // size  为字串的长度 ,这里一次性读完    int size=in.available();    byte[] buffer=new byte[size];    in.read(buffer);    in.close();    str=new String(buffer,"GB2312");} catch (IOException e) {    // TODO Auto-generated catch block    return null;    e.printStackTrace();}return str;

}

方式四

/InputStreamReader+BufferedReader读取字符串 , InputStreamReader类是从字节流到字符流的桥梁/

/* 按行读对于要处理的格式化数据是一种读取的好方式 */private static String readString4(){    int len=0;    StringBuffer str=new StringBuffer("");    File file=new File(FILE_IN);    try {        FileInputStream is=new FileInputStream(file);        InputStreamReader isr= new InputStreamReader(is);        BufferedReader in= new BufferedReader(isr);        String line=null;        while( (line=in.readLine())!=null )        {            if(len != 0)  // 处理换行符的问题            {                str.append("\r\n"+line);            }            else            {                str.append(line);            }            len++;        }        in.close();        is.close();    } catch (IOException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }    return str.toString();}

–>路要一步一步走,记住自己走过的路,不再犯同样的错误,才是真正的成长!欢迎指点、交流。<–

如果觉得本篇博客解决了你的困惑,还请你顶下文章,或者微信扫描下方二维码,打赏下博主,感激你的支持。
这里写图片描述

1 0
原创粉丝点击