我需要在第一个空行之前分割文件的第一部分,在第一行之后分割第二部分。我怎样才能做到这一点?目前,我使用以下代码阅读文件:
try {
Scanner scanner = new Scanner(file);
return scanner.useDelimiter("\\Z").next();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
return "500 - Server Error";
}
有什么建议吗?
答案 0 :(得分:1)
如果我理解正确,请参阅以下代码:
Scanner scanner = new Scanner(new File("d:\\tmp\\zyr.txt"));
String delimiter = System.getProperty("line.separator");
scanner.useDelimiter(delimiter);
StringBuilder sb=new StringBuilder();
List<String> result=new ArrayList<>();
while (scanner.hasNextLine()){
String line = scanner.nextLine();
if(!(line.trim().length()==0)){
sb.append(line).append(delimiter);
}else if(sb.toString().length()>0) {
result.add(sb.toString());
sb.setLength(0);
}
}
if(sb.toString().length()>0) {
result.add(sb.toString());
}
System.out.println("first section:");
System.out.println(result.get(0));
System.out.println("second section:");
System.out.println(result.get(1));
zyr.txt
文件就像:
abc
abc
abc
123
123
,您想要的第一部分是result
列表中的第一项,第二部分是第二项。
打印结果为:
first section:
abc
abc
abc
second section:
123
123
答案 1 :(得分:0)
这是我的方法:读取整个文件,然后将“\ n \ n”拆分为两部分:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class SplitFileByBlankLine {
public static void main(String[] args) throws IOException {
final String blankLine = System.getProperty("line.separator") + "{2}";
// Read the whole contents, assuming small to moderate size
String contents = new String(Files.readAllBytes(Paths.get("data.txt")));
// Split the contents by blank line into two parts
String[] partition = contents.split(blankLine, 2);
// Print out for visual verification
System.out.println(partition[0]); // Text before the blank line
System.out.println("-----");
System.out.println(partition[1]); // Text after
}
}
您似乎正在尝试解析http响应。我是Java的新手,但我认为必须有一个库才能完成任务。