字符流讀取多行文件內容進行校驗

在使用字符流對文件進行讀取時,因爲有一些數據的格式要求,格式如下:

key1 = value1

key2 = value2

  value2_2

  value2_3

key3 = value3

......

現在要存儲爲key-value的格式:

key1   value1

key2   value2 value2_2 value2_3

key3   value3

.......

使用到的字符流爲:BufferedReader

僞代碼如下:

String line = "";
StringBuilder value = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
while((line =reader.readLine() ) != null) {
	 //是否滿足格式: key = value
     if(Pattern.compile(".*[\t]*=[\t]*.*").matcher(line).matches()) {
	   String keyValues = line.split("=");
	   key = keyValues[0];
	   value.setLength(0);
	   value.append(keyValues[1]);
       reader.mark(1000);
       while((line = reader.readLine()) != null) {
		  //如果下一行滿足格式,那麼直接得到結果,否則將下一行的結果作爲上一行的value
          if(Pattern.compile(".*[\t]*=[\t]*.*").matcher(line).matches()) {
              //獲得到真正的value
			  value.toString();
			  
			  reader.reset();
			  
			  break;
          } else {
			  value.append(line);
		  }
      }
   }
}

通過mark和reset讀取多行來獲取到指定格式的數據



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章