JAVA-只读取文件的第一行
我只想读取文本文件的第一行,并将第一行放在字符串数组中。
这是我所拥有的,但它读取整个文件。
myTextFile中的ex文本:
Header1,Header2,Header3,Header4,Header5 1,2,3,4,5 6,7,8,9,10 String line= System.getProperty("line.separator"); String strArray[] = new String[5]; String text = null; BufferedReader brTest = new BufferedReader(new FileReader(myTextFile)); text = brTest .readLine(); while (text != line) { System.out.println("text = " + text ); strArray= text.split(","); }
如果我了解你,那么
String text = brTest.readLine(); // Stop. text is the first line. System.out.println(text); String[] strArray = text.split(","); System.out.println(Arrays.toString(strArray));
使用BufferedReader.readLine()
获取第一行。
BufferedReader brTest = new BufferedReader(new FileReader(myTextFile)); text = brTest .readLine(); System.out.println("Firstline is : " + text);
使用Java 8和java.nio
您还可以执行以下操作:
String myTextFile = "path/to/your/file.txt"; Path myPath = Paths.get(myTextFile); String[] strArray = Files.lines(myPath) .map(s -> s.split(",")) .findFirst() .get();
如果TAsks假设是正确的,你可以通过额外的实现来实现
.filter(s -> !s.equals(""))
我想你只是在它不是空的时候试图获得一条线。
您可以使用
while ((text=brTest .readLine())!=null){ if(!text.equals("")){//Ommit Empty lines System.out.println("text = " + text ); strArray= text.split(","); System.out.println(Arrays.toString(strArray)); break; } }
此外,除了此处介绍的所有其他解决方案之外,您还可以使用guava
实用程序类( Files
),如下所示:
import com.google.common.io.Files; //... String firstLine = Files.asCharSource(myTextFile).readFirstLine();
用这个
BuffereedReader reader = new BufferedReader(new FileReader(textFile)); StringBuilder builder = new StringBuilder(); StringBuilder sb = new StringBuilder(); String line = br.readLine(); while (line != null) { sb.append(line); break; } if(sb.toString.trim().length!=0) System.out.println("first line"+sb.toString);
您需要更改循环的条件
String[] nextLine; while((nextLine = brTest.readLine()) != null) { ... }
ReadLine读取每行从开始到出现\ r andor \ n您还可以使用tokenizer来分割字符串
String[] test = "this is a test".split("\\s");
另外,如果在问题中请注意,文件似乎是CSV类型。