1.读取文本下的特定信息,如[brand]下的内容。
2.首先我们通过file获取文件路径,然后使用BufferedReader进行文件的读取文件,代码如下:
public static ArrayList<String> getBranch(String value){ ArrayList<String> list = new ArrayList<String>(); File file = new File(value); if (!file.exists()) { System.out.println("找不到当前文件"); } BufferedReader reader = null; String biaoti = ""; String branch=""; try { reader = new BufferedReader(new FileReader(file)); String tempString = null; while ((tempString = reader.readLine()) != null) { if (tempString.startsWith("[/")) { biaoti = tempString.replace("[", ""); branch = biaoti.replace("]", ""); list.add(branch); } } }catch (IOException e) { e.printStackTrace(); } return list; }3.往某个[brand]下添加内容,或者添加新的[brand]的新内容,
public static Boolean writeNewMessage(String branch,String url,String Information){ File file = new File(url); if (!file.exists()) { System.out.println("找不到当前文件"); } BufferedReader reader = null; String biaoti = ""; ArrayList<String> beizhu = new ArrayList<String>(); ArrayList<String> groups = new ArrayList<String>(); Map<String,ArrayList<String>> map = new LinkedHashMap<String,ArrayList<String>>(); BufferedWriter writer = null; try { reader = new BufferedReader(new FileReader(file)); String tempString = null; while ((tempString = reader.readLine()) != null) { if (tempString.startsWith("[/")) { ArrayList<String> list = new ArrayList<String>(); biaoti = tempString; map.put(biaoti, list); } else if (tempString.startsWith("[groups]")) { ArrayList<String> list = new ArrayList<String>(); biaoti = tempString; map.put(biaoti, list); } else if (tempString.startsWith("#")) { beizhu.add(tempString); } else { if (!"".equals(tempString.trim())) { ArrayList<String> s = map.get(biaoti); if (s!= null) { s.add(tempString); map.put(biaoti, s); } } } } ArrayList<String> temp = map.get("["+branch+"]"); if(temp==null){ ArrayList<String> temp1=new ArrayList<String>(); temp1.add(Information); map.put("["+branch+"]", temp1); }else{ temp.add(Information); map.put("["+branch+"]", temp); } System.out.println(map); groups = map.get("[groups]"); writer = new BufferedWriter(new FileWriter(url)); for(String s:beizhu){ writer.write(s+"\n"); } writer.write("\n"); writer.write("[groups]"+"\n"); for (String s: groups) { writer.write(s+"\n"); } writer.write("\n"); for (String key : map.keySet()) { if (!key.equals("[groups]")) { ArrayList<String> list1 = (ArrayList<String>)map.get(key); writer.write(key+"\n"); for (String s: list1) { writer.write(s+"\n"); } writer.write("\n"); } } reader.close(); } catch (IOException e) { e.printStackTrace(); return false; } finally { try { if (writer != null) { writer.close(); } } catch (IOException e) { e.printStackTrace(); return false; } } return true; }
注:这里的map,如果部分添加的先后顺序,可以用HashMap,TreeMap,如果想添加后的文本顺序与原文本一样,那就用LinkedHashMap。