importjava.io.BufferedWriter;importjava.io.FileWriter;importjava.io.IOException;importjava.nio.charset.StandardCharsets;importjava.nio.file.Files;importjava.nio.file.Paths;importjava.util.ArrayList;importjava.util.List;importjava.util.regex.Matcher;importjava.util.regex.Pattern;importjava.util.stream.Collectors;importjava.util.stream.Stream;public classFooBarMainEntry {public static voidmain(String[] args) {
List all = FileHelper.readFileToStringList("data.txt");
List patternList = new ArrayList();
patternList.add(Pattern.compile("id.{1,15}"));
patternList.add(Pattern.compile("name.{1,13}"));
patternList.add(Pattern.compile("att.{5,30}"));for(String line : all) {
StringHelper.extractPatternFromString(patternList,line,"###");
}
}
}classFileHelper {public staticString readFileToString(String filePath){
String content= "";try{
content= newString ( Files.readAllBytes( Paths.get(filePath) ) );
}catch(IOException e){
e.printStackTrace();
}returncontent;
}public static ListreadFileToStringList(String filePath)
{
List result=new ArrayList();try (Stream stream =Files.lines( Paths.get(filePath), StandardCharsets.UTF_8)){
stream.forEach(s->result.add(s));
}catch(IOException e){
e.printStackTrace();
}returnresult;
}public static voidoverWriteStringToFile(String filePath, String content) {try{
BufferedWriter writer= new BufferedWriter(newFileWriter(filePath));
writer.write(content);
writer.close();
}catch(Exception e) {
e.printStackTrace();
}
}public static voidappendStringToFile(String filePath, String content) {try{
BufferedWriter writer= new BufferedWriter(new FileWriter(filePath, true));
writer.append(content);
writer.close();
}catch(Exception e) {
e.printStackTrace();
}
}public static void overWriteStringListToFile(String filePath, Listcontent) {if(content.isEmpty()) {return;
}try{
BufferedWriter writer= new BufferedWriter(newFileWriter(filePath));
writer.write(content.get(0));
writer.append("\n");for(int i =1; i< content.size()-1;++i) {
writer.append(content.get(i));
writer.append("\n");
}
writer.append(content.get(content.size()-1));
writer.close();
}catch(Exception e) {
e.printStackTrace();
}
}public static void appendStringListToFile(String filePath, Listcontent) {if(content.isEmpty()) {return;
}try{
BufferedWriter writer= new BufferedWriter(new FileWriter(filePath, true));for(int i =0; i< content.size()-1;++i) {
writer.append(content.get(i));
writer.append("\n");
}
writer.append(content.get(content.size()-1));
writer.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}classStringHelper {public static String extractPatternFromString(final List patterns, final String inputString, finalString outSeperator){
StringBuilder result= newStringBuilder();for(Pattern p : patterns) {
Matcher matcher=p.matcher(inputString);while(matcher.find()) {
result.append(inputString.substring(matcher.start(), matcher.end()));
result.append(outSeperator);
}
matcher.reset();
}
System.out.println(result.toString());returnresult.toString();
}
}