有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java逐行读取文本文件,并将这些行插入到输出文件的d=序列之后

I have an input file like below. An input file contains list of 8 digit numbers separated by comma. For that we need to read input file mentioned below.

12345678,
12345679,
12345680,
12345681,
12345682,
12345683,
12345684,
12345685    
as i have to read the above file. I need to insert first value after -d= sequence,second value at -d= sequence and so on...

finally output file must be:

D:\data\12345678.pdf -d=12345678 
D:\data\12345679.pdf -d=12345679 
D:\data\12345680.pdf -d=12345680 
D:\data\12345681.pdf -d=12345681 
D:\data\12345682.pdf -d=12345682 
D:\data\12345683.pdf -d=12345683 

这里的路径和文件名各不相同。但主要目标是只在每行的-d=序列之后插入这些值

How can i achieve this?

谢谢你的帮助


共 (1) 个答案

  1. # 1 楼答案

    实现这一点的一个方法是

    package com.test.file;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.text.MessageFormat;
    
    public class OutputGenerator {
    
        private static final String PATH = "D:\\data\\";
        private static final String FORMAT = PATH + "{0}.pdf -d={0}"; 
    
        public static void main(String[] args) throws IOException {
            String inputFile = "/Users/chatar/Documents/dev/projects/weekend-practice/stack-overflow/src/com/test/file/input.txt";
            String outputFile = "/Users/chatar/Documents/dev/projects/weekend-practice/stack-overflow/src/com/test/file/output.txt";
    
            FileReader reader = new FileReader(new File(inputFile));
            BufferedReader bufferedReader = new BufferedReader(reader);
            FileWriter writer = new FileWriter(outputFile);
            BufferedWriter bufferedWriter = new BufferedWriter(writer);
    
    
            try {
                while(bufferedReader.readLine() != null) {
                    String inputLine = bufferedReader.readLine();
                    System.out.println("inputline :: "+ inputLine);
                    inputLine = inputLine.replaceAll("\\s+", "").replace(",", "");
                    MessageFormat format = new MessageFormat(FORMAT);
                    String outputLine = format.format(new Object[] {inputLine});
                    bufferedWriter.write(outputLine);
                    bufferedWriter.newLine();
    
                }  
            }
            finally {
                bufferedReader.close();
                bufferedWriter.close();
            }
    
        }
    }