Refactored readFirstLine methods.
This commit is contained in:
parent
4612402014
commit
70f6c9fb02
2 changed files with 120 additions and 38 deletions
|
@ -19,6 +19,7 @@
|
||||||
package fr.devinsy.statoolinfos.util;
|
package fr.devinsy.statoolinfos.util;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
@ -76,6 +77,112 @@ public class FilesUtils
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read first line.
|
||||||
|
*
|
||||||
|
* @param file
|
||||||
|
* the file
|
||||||
|
* @return the string
|
||||||
|
* @throws IOException
|
||||||
|
* Signals that an I/O exception has occurred.
|
||||||
|
*/
|
||||||
|
public static String readFirstLine(final File file) throws IOException
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
result = readFirstLine(new Files(file));
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read first line.
|
||||||
|
*
|
||||||
|
* @param files
|
||||||
|
* the file
|
||||||
|
* @return the string
|
||||||
|
* @throws IOException
|
||||||
|
* Signals that an I/O exception has occurred.
|
||||||
|
*/
|
||||||
|
public static String readFirstLine(final Files files) throws IOException
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
FilesLineIterator iterator = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
iterator = new FilesLineIterator(files);
|
||||||
|
if (iterator.hasNext())
|
||||||
|
{
|
||||||
|
result = iterator.next();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (iterator != null)
|
||||||
|
{
|
||||||
|
iterator.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read first line not blank.
|
||||||
|
*
|
||||||
|
* @param files
|
||||||
|
* the files
|
||||||
|
* @return the string
|
||||||
|
* @throws IOException
|
||||||
|
* Signals that an I/O exception has occurred.
|
||||||
|
*/
|
||||||
|
public static String readFirstLineNotBlank(final Files files) throws IOException
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
FilesLineIterator iterator = null;
|
||||||
|
result = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
iterator = new FilesLineIterator(files);
|
||||||
|
|
||||||
|
boolean ended = false;
|
||||||
|
while (!ended)
|
||||||
|
{
|
||||||
|
if (iterator.hasNext())
|
||||||
|
{
|
||||||
|
result = iterator.next();
|
||||||
|
|
||||||
|
if (!StringUtils.isBlank(result))
|
||||||
|
{
|
||||||
|
ended = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (iterator != null)
|
||||||
|
{
|
||||||
|
iterator.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search recursively.
|
* Search recursively.
|
||||||
*
|
*
|
||||||
|
|
|
@ -37,6 +37,7 @@ public class LineIterator
|
||||||
{
|
{
|
||||||
private static Logger logger = LoggerFactory.getLogger(LineIterator.class);
|
private static Logger logger = LoggerFactory.getLogger(LineIterator.class);
|
||||||
|
|
||||||
|
private File file;
|
||||||
private BufferedReader in;
|
private BufferedReader in;
|
||||||
private String nextLine;
|
private String nextLine;
|
||||||
private boolean ready;
|
private boolean ready;
|
||||||
|
@ -51,6 +52,8 @@ public class LineIterator
|
||||||
*/
|
*/
|
||||||
public LineIterator(final File source) throws IOException
|
public LineIterator(final File source) throws IOException
|
||||||
{
|
{
|
||||||
|
this.file = source;
|
||||||
|
|
||||||
if (source.getName().endsWith(".gz"))
|
if (source.getName().endsWith(".gz"))
|
||||||
{
|
{
|
||||||
this.in = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(source))));
|
this.in = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(source))));
|
||||||
|
@ -72,6 +75,16 @@ public class LineIterator
|
||||||
IOUtils.closeQuietly(this.in);
|
IOUtils.closeQuietly(this.in);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the file.
|
||||||
|
*
|
||||||
|
* @return the file
|
||||||
|
*/
|
||||||
|
public File getFile()
|
||||||
|
{
|
||||||
|
return this.file;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks for next.
|
* Checks for next.
|
||||||
*
|
*
|
||||||
|
@ -130,42 +143,4 @@ public class LineIterator
|
||||||
this.ready = true;
|
this.ready = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Read first line.
|
|
||||||
*
|
|
||||||
* @param file
|
|
||||||
* the file
|
|
||||||
* @return the string
|
|
||||||
* @throws IOException
|
|
||||||
* Signals that an I/O exception has occurred.
|
|
||||||
*/
|
|
||||||
public static String readFirstLine(final File file) throws IOException
|
|
||||||
{
|
|
||||||
String result;
|
|
||||||
|
|
||||||
LineIterator iterator = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
iterator = new LineIterator(file);
|
|
||||||
if (iterator.hasNext())
|
|
||||||
{
|
|
||||||
result = iterator.next();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (iterator != null)
|
|
||||||
{
|
|
||||||
iterator.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue