Fri, 17 May 2024


How to Apply Regular Expressions on the Contents of a File?

By: Anton, NetArt Media
Fri, 14 August 2020

The matching routines in java.util.regex require that the input be a CharSequence object. This example implements a method that efficiently returns the contents of a file in a CharSequence object.
// Converts the contents of a file into a CharSequence
// suitable for use by the regex package.
public CharSequence fromFile(String filename) throws IOException
{
FileInputStream fis = new FileInputStream(filename);
FileChannel fc = fis.getChannel();

// Create a read-only CharBuffer on the file
ByteBuffer bbuf = fc.map(FileChannel.MapMode.READ_ONLY, 0, (int)fc.size());
CharBuffer cbuf = Charset.forName("8859_1").newDecoder().decode(bbuf);
return cbuf;
}

Here is sample code that uses the method:
try
{
// Create matcher on file
Pattern pattern = Pattern.compile("pattern");
Matcher matcher = pattern.matcher(fromFile("infile.txt"));

// Find all matches
while (matcher.find())
{
// Get the matching string
String match = matcher.group();
}
}

catch (IOException e)

{

}


Category: Web Development
Share this post:



See All Scripts






Subscribe for our newsletter

Receive the latest blog posts direct in your mailbox