溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java實(shí)現(xiàn)在讀取文件內(nèi)容的時(shí)判斷出空白行

發(fā)布時(shí)間:2020-10-30 16:46:58 來源:億速云 閱讀:411 作者:Leah 欄目:開發(fā)技術(shù)

Java實(shí)現(xiàn)在讀取文件內(nèi)容的時(shí)判斷出空白行?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

一、問題描述:

在用Java讀入文件內(nèi)容時(shí),往往文件中存在空行,有時(shí)候用空行來分割不同屬性的內(nèi)容,這個(gè)時(shí)候,就有必要把這個(gè)空行識別出來,在Java中該如何識別空行呢?

二、案例分析:

數(shù)據(jù)集為:

第一行信息:節(jié)點(diǎn)個(gè)數(shù) 開始節(jié)點(diǎn) 終止節(jié)點(diǎn)

第二行信息:空行

第三行到第四十四行信息:邊及邊的權(quán)值

第四十五行信息:空行

第四十六行到第四十七行信息:必過節(jié)點(diǎn)

第四十八行信息:空行

第四十九行到第五十行信息:必過邊

第五十一行信息:空行

第五十二行到第五十三行信息:不能經(jīng)過的邊

18 S E

S N1 3
S N2 1
S N3 1
N1 N9 4
N1 N4 1
N1 N2 1
N2 N5 1
N2 N3 1
N2 N4 2
N3 N5 2
N3 N6 2
N3 N7 1
N4 N5 1
N4 N9 1
N5 N6 1
N5 N12 3
N5 N10 1
N5 N9 3
N6 N12 2
N6 N13 4
N6 N14 3
N6 N8 2
N6 N7 1
N7 N8 1
N8 N14 1
N8 N15 3
N9 N10 1
N9 N11 1
N10 N11 1
N10 N12 2
N11 N12 1
N11 N16 1
N12 N13 2
N12 N16 1
N13 N16 2
N13 N14 1
N13 N15 2
N14 N15 1
E N16 1
E N13 1
E N15 4

N7
N12

N2 N4
N13 N14

N11 N12

現(xiàn)在需要把這些信息都給讀出來,代碼為:

import java.util.*;
import java.util.Map.Entry;
import java.io.*;
 
public class choosePath {
private static ArrayList arrayListOfChoosedPath=new ArrayList();
 private static ArrayList arrayListOfMustThoughNode=new ArrayList();
 private static ArrayList arrayListOfMustThoughEdge=new ArrayList();
 private static ArrayList arrayListOfCanNotThoughEdge=new ArrayList();
 
 private static int needOfNode;
 
 public static void main(String[] args) throws IOException {
 
 //sumCol變量用于記錄數(shù)據(jù)集中邊的數(shù)量
 int sumCol=0;
 BufferedReader bfr2 = new BufferedReader(new FileReader(
  "C://Users//Administrator//Desktop//text//case.txt"));
 bfr2.readLine();
 bfr2.readLine();
 while(!bfr2.readLine().equals("")){
  sumCol++;
 }
 System.out.println("tempcol="+sumCol);
 
 
 String tempMustThoughNode=null;
 while(!(tempMustThoughNode=bfr2.readLine()).equals("")){
  System.out.println(tempMustThoughNode);
  arrayListOfMustThoughNode.add(tempMustThoughNode);
 }
 while(!(tempMustThoughNode=bfr2.readLine()).equals("")){
  System.out.println(tempMustThoughNode);
  arrayListOfMustThoughEdge.add(tempMustThoughNode.split(" ")[0]);
  arrayListOfMustThoughEdge.add(tempMustThoughNode.split(" ")[1]);
 }
 
 while((tempMustThoughNode=bfr2.readLine())!=null){
  System.out.println(tempMustThoughNode);
  arrayListOfCanNotThoughEdge.add(tempMustThoughNode.split(" ")[0]);
  arrayListOfCanNotThoughEdge.add(tempMustThoughNode.split(" ")[1]);
 }
 bfr2.close();
}
}

輸出信息為

tempcol=41
N7
N12
N2 N4
N13 N14
N11 N12

三、結(jié)論:

在Java中,判斷空行的方法是:

bfr.readLine( ).equals("");

補(bǔ)充知識:java獲取txt文件內(nèi)容按照行、空格解析

我就廢話不多說了,大家還是直接看代碼吧~

public static String txt2String(File file) {
    StringBuilder result = new StringBuilder();
    try {
      BufferedReader br = new BufferedReader(new FileReader(file));//構(gòu)造一個(gè)BufferedReader類來讀取文件
      String s = null;
      while ((s = br.readLine()) != null) {//使用readLine方法,一次讀一行
        result.append(System.lineSeparator() + s);
      }
      br.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
    return result.toString();
  }
 
  public static void main(String[] args) {
    File file = new File("C:\\Users\\Administrator\\Desktop\\文件名.txt");
    String s = txt2String(file);
    String[] split = s.split("\\r?\\n");
    for (String s1 : split) {
      if (s1.length() > 0) {
        String[] split1 = s1.split("\\s+");
        for (String s2 : split1) {
          if (s2.length() > 0) {
            System.out.println(s2);
          }
        }
      }
 
    }
  }

看完上述內(nèi)容,你們掌握J(rèn)ava實(shí)現(xiàn)在讀取文件內(nèi)容的時(shí)判斷出空白行的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI