You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Henri Yandell (JIRA)" <ji...@apache.org> on 2010/07/21 19:06:51 UTC
[jira] Commented: (IO-199) Replace strings in file
[ https://issues.apache.org/jira/browse/IO-199?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12890778#action_12890778 ]
Henri Yandell commented on IO-199:
----------------------------------
What about a filter notion that you placed between an InputStream and an OutputStream?
So:
df= new RegexDataFilter("from text", "to text") // or Matcher, Pattern based etc
FileUtils.filterData(in, out, df)
> Replace strings in file
> -----------------------
>
> Key: IO-199
> URL: https://issues.apache.org/jira/browse/IO-199
> Project: Commons IO
> Issue Type: New Feature
> Components: Utilities
> Reporter: Alexander Stroell
> Priority: Minor
>
> A method, that can replace strings (keys) in a file would be very useful.
> For example if you have a file with the following text:
> {noformat}
> The packet must arrive between @dateFrom and @dateTo.
> {noformat}
> You can now replace the "keys" with a value of your choice..
> Perhaps something like this:
> {code}
> public static void replaceStrings(File inputFile, File outputFile, List<KeyValuePair<String, String>> replacements) throws IOException{
> BufferedReader in = new BufferedReader(new FileReader(inputFile));
> BufferedWriter out = new BufferedWriter(new FileWriter(outputFile));
>
> String line;
>
> while ((line = in.readLine()) != null) {
> for(KeyValuePair<String, String> kvp : replacements){
> line = line.replace(kvp.getKey(), kvp.getValue());
> }
> out.write(line);
> out.newLine();
> }
> out.flush();
> out.close();
> in.close();
> }
> {code}
> I think it should also be possible, to replace the strings in the inputfile so you don't have to create a new file (outputfile)
> Regards Alex
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.