• Java字符串与文件的互转操作


    Java中有时候需要读取一个文本类的文件,将其转换为字符串,然后做进一步处理。Java中没有现成的API方法。
     
    一、字符串转换为文件
            /** 
             * 将字符串写入指定文件(当指定的父路径中文件夹不存在时,会最大限度去创建,以保证保存成功!) 
             * 
             * @param res            原字符串 
             * @param filePath 文件路径 
             * @return 成功标记 
             */ 
            public static boolean string2File(String res, String filePath) { 
                    boolean flag = true; 
                    BufferedReader bufferedReader = null; 
                    BufferedWriter bufferedWriter = null; 
                    try { 
                            File distFile = new File(filePath); 
                            if (!distFile.getParentFile().exists()) distFile.getParentFile().mkdirs(); 
                            bufferedReader = new BufferedReader(new StringReader(res)); 
                            bufferedWriter = new BufferedWriter(new FileWriter(distFile)); 
                            char buf[] = new char[1024];         //字符缓冲区 
                            int len; 
                            while ((len = bufferedReader.read(buf)) != -1) { 
                                    bufferedWriter.write(buf, 0, len); 
                            } 
                            bufferedWriter.flush(); 
                            bufferedReader.close(); 
                            bufferedWriter.close(); 
                    } catch (IOException e) { 
                            e.printStackTrace(); 
                            flag = false; 
                            return flag; 
                    } finally { 
                            if (bufferedReader != null) { 
                                    try { 
                                            bufferedReader.close(); 
                                    } catch (IOException e) { 
                                            e.printStackTrace(); 
                                    } 
                            } 
                    } 
                    return flag; 
            }

    二、文件转换为字符串

             /** 
             * 文本文件转换为指定编码的字符串 
             * 
             * @param file         文本文件 
             * @param encoding 编码类型 
             * @return 转换后的字符串 
             * @throws IOException 
             */ 
            public static String file2String(File file, String encoding) { 
                    InputStreamReader reader = null; 
                    StringWriter writer = new StringWriter(); 
                    try { 
                            if (encoding == null || "".equals(encoding.trim())) { 
                                    reader = new InputStreamReader(new FileInputStream(file), encoding); 
                            } else { 
                                    reader = new InputStreamReader(new FileInputStream(file)); 
                            } 
                            //将输入流写入输出流 
                            char[] buffer = new char[DEFAULT_BUFFER_SIZE]; 
                            int n = 0; 
                            while (-1 != (n = reader.read(buffer))) { 
                                    writer.write(buffer, 0, n); 
                            } 
                    } catch (Exception e) { 
                            e.printStackTrace(); 
                            return null; 
                    } finally { 
                            if (reader != null) 
                                    try { 
                                            reader.close(); 
                                    } catch (IOException e) { 
                                            e.printStackTrace(); 
                                    } 
                    } 
                    //返回转换结果 
                    if (writer != null) 
                            return writer.toString(); 
                    else return null; 
            }
    不想抛出太多的检查异常,如果你需要捕捉,就抛出吧。
     
    注意:对于文件转换为字符串,存在一个编码问题。上面的file2String方法中,如果你不知道编码,调用时候方法设为null即可,此时使用系统默认的编码类型。
  • 相关阅读:
    paip. everything exe 文件不能启动的解决
    paip.输入法编程词频顺序order by py
    paip.最新的c++ qt5.1.1环境搭建跟hello world
    paip.mysql 5.6 数据库 占用 内存 过多 的 解决方案
    paip.win32的internet扩展已停止工作解决大法
    paip.输入法编程删除双字词简拼
    paip.输入法编程词频调整单字优先编码发音一致优先的问题跟调整
    paip.输入法编程带ord gudin去重复
    paip.php eclipse output echo 乱码
    paip.svn使用最佳实践
  • 原文地址:https://www.cnblogs.com/ncy1/p/9266211.html
Copyright © 2020-2023  润新知