0

私の現在のプログラムはファイルを読み取り、それを別のディレクトリにコピーしますが、行番号と行内の文字番号の 2 つの int で指定される 1 文字を x に変更したいと考えています。たとえば、int line = 5 および int char = 4 の場合、5 行目の 4 番目の文字が x に変更され、残りは残ります。これを自分のプログラムに追加するにはどうすればよいですか?

import java.io.*;
import java.util.Scanner;

public class copytest {

    public static void main(String[] args) throws Exception {       
        readFile();
    }

    public static void readFile() throws Exception {

        // Location of file to read
        File file = new File("Old.txt");

        Scanner scanner = new Scanner(file);

        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            //System.out.println(line);
            writeFile(line);
        }
        scanner.close();
        System.out.println("File Copied"); 
    }

    public static void writeFile(String copyText) throws Exception {

        String newLine = System.getProperty("line.separator");

        // Location of file to output
        Writer output = null;
        File file = new File("New.txt");
        output = new BufferedWriter(new FileWriter(file, true));
        output.write(copyText);
        output.write(newLine);
        output.close();     
    }
 }
4

2 に答える 2

2

ループを次のように変更します。

 int i=0;
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        if (i == lineNumber) {
            if (line.length() >= charNumber) {
                line = line.substring(0,charNumber) + wantedChar +
                       line.substring(charNumber);
            }
        }
        writeFile(line);
        i++;
    }

行が長い場合にのみ文字を置き換えることに注意してください。

于 2013-07-06T13:41:41.823 に答える