一、问题描述:
在用Java读入文件内容时,往往文件中存在空行,有时候用空行来分割不同属性的内容,这个时候,就有必要把这个空行识别出来,在Java中该如何识别空行呢?
二、案例分析:
数据集为:
第一行信息:节点个数 开始节点 终止节点
第二行信息:空行
第三行到第四十四行信息:边及边的权值
第四十五行信息:空行
第四十六行到第四十七行信息:必过节点
第四十八行信息:空行
第四十九行到第五十行信息:必过边
第五十一行信息:空行
第五十二行到第五十三行信息:不能经过的边
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 4N7
N12N2 N4
N13 N14N11 N12
现在需要把这些信息都给读出来,代码为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
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变量用于记录数据集中边的数量
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
三、结论:
在Java中,判断空行的方法是:
bfr.readLine( ).equals("");
补充知识:java获取txt文件内容按照行、空格解析
我就废话不多说了,大家还是直接看代码吧~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
public static String txt2String(File file) {
StringBuilder result = new StringBuilder();
try {
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);
}
}
}
}
}
|
内容出现乱码,则先把文件设置为UTF-8格式。
以上这篇Java在读取文件内容的时候,如何判断出空白行的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/G_66_hero/article/details/71305805