zoukankan      html  css  js  c++  java
  • 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即可,此时使用系统默认的编码类型。
  • 相关阅读:
    数据结构学习(十二)、归并排序
    数据结构学习(十一)、堆排序
    数据结构学习(十)、插入排序
    数据结构学习(九)、简单选择排序
    数据结构学习(八)、冒泡排序
    天梯赛 L3-013 非常弹的球 找规律
    codeup模拟赛 进击的二叉查找数
    POJ 2828 Buy Tickets 线段树 倒序插入 节点空位预留(思路巧妙)
    HDU 1394 逆序数 线段树单点跟新 | 暴力
    HDU 2795 Billboard 线段树,区间最大值,单点更新
  • 原文地址:https://www.cnblogs.com/ncy1/p/9266211.html
Copyright © 2011-2022 走看看