1

ユーザーが選択した 1 つのテキスト ファイルのコンテンツを取得し、現在のコンテンツを置き換えずに別のテキスト ファイルに追加したいと考えています。たとえば、次のようになります。

更新: 2 番目のファイルに番号を付けて追加するにはどうすればよいですか?

テキストファイル 1:

AAA BBB CCC

AAA BBB CCC

TextFile2: (コピー後)

  1. EEE FFF GGG

  2. AAA BBB CCC

  3. AAA BBB CCC

更新: 盗作と見なされる可能性があるため、コードを削除する必要がありました。これは回答されたので、何をすべきかがわかりました。

4

5 に答える 5

2

これを試してください

new FileWriter(fileName,append);

これにより、ファイルが追加モードで開かれます。

javadoc によると、

パラメータ: fileName 文字列 システム依存のファイル名。

append ブール値が true の場合、データはファイルの先頭ではなく末尾に書き込まれます。

public static void main(String[] args) {
    FileReader Read = null;
    FileWriter Import = null;
    try {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a file name: ");
        System.out.flush();
        String filename = scanner.nextLine();
        File file = new File(filename);
        Read = new FileReader(filename);
        Import = new FileWriter("songstuff.txt",true);
        int Rip = Read.read();

        while(Rip!=-1) {
            Import.write(Rip);
            Rip = Read.read();
        }


    } catch(IOException e) {
        e.printStackTrace();
    } finally {
        close(Read);
        close(Import);
    }
}


public static void close(Closeable stream) {
    try {
        if (stream != null) {
            stream.close();
        }
    } catch(IOException e) {
       // JavaProgram();
    }
}
于 2013-10-22T09:49:17.870 に答える
1

Apache commons IO を使用できます。

アパッチコモンズ IO

例:

import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.commons.io.FileUtils;

public class HelpTest {

    public static void main(String args[]) throws IOException, URISyntaxException {

        String inputFilename = "test.txt"; // get from the user

        //Im loading file from project
        //You might load from somewhere else...
        URI uri = HelpTest.class.getResource("/" + inputFilename).toURI();
        String fileString = FileUtils.readFileToString(new File(uri));

        // output file
        File outputFile = new File("C:\\test.txt");
        FileUtils.write(outputFile, fileString, true);
    }
}
于 2013-10-22T09:26:27.737 に答える
1

new FileWriter("songstuff.txt", true);ファイルを上書きするのではなく、ファイルに追加するために使用します。

参照:FileWriter

于 2013-10-22T09:16:43.140 に答える
0

書き込み用に開いているファイル チャネルは、追加モードになっている可能性があります。http://docs.oracle.com/javase/6/docs/api/java/nio/channels/FileChannel.html

も見てください.. http://docs.oracle.com/javase/6/docs/api/java/io/FileOutputStream.html#FileOutputStream(java.io.File , boolean)

于 2013-10-22T09:27:20.233 に答える