使用Scanner和FileWriter复制文本行,不附加

时间:2015-10-23 20:09:42

标签: java file java.util.scanner filewriter printwriter

在这里不知所措。一直在试图弄清楚如何复制单个字符串,行换行并将其附加到副本中。如果副本存在,副本将被删除,如果副本没有创建,我可以看到每行文本都出现在控制台中,但它不会附加到新副本中。

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

public class FriendListCopy
{
    public static void main(String[] args) throws IOException
{
    String str;
    File file = new File("FriendList.txt");
    Scanner inputFile = new Scanner(file);
    File newFile = new File("FriendListCopy.txt");
    FileWriter fw = new FileWriter("FriendListCopy.txt", true);
    PrintWriter pw = new PrintWriter(fw);
    if(file.exists()) 
    {
        if(newFile.exists())
            newFile.delete();
        if(!newFile.exists())
            newFile.createNewFile();
        while(inputFile.hasNext())
        {
            str = inputFile.nextLine();
            pw.println(str);
            System.out.println(str);
        }
    }
    else
    {
        inputFile.close();
        pw.close();
        System.exit(1);
    }
    inputFile.close();
    pw.close();
    fw.close();
    }
}

忽略所有关闭的陈述,我只是在尝试。 我觉得这种方法无法使用,但也许我只是忽略了一些东西。感谢您提供任何帮助。 使用Linux,如果有任何帮助。权限:

-rw-r--r-- 1  users 1724 Oct 23 11:51 FriendList.class
-rw-r--r-- 1  users 1197 Oct 23 15:52 FriendListCopy.class
-rw-r--r-- 1  users  761 Oct 23 15:49 FriendListCopy.java
-rw-r--r-- 1  users    0 Oct 23 15:51 FriendListCopy.txt
-rw-r--r-- 1  users 1124 Oct 23 11:37 FriendList.java
-rw-r--r-- 1  users   46 Oct 23 11:27 FriendList.txt

1 个答案:

答案 0 :(得分:0)

摆脱所有文件存在/删除/创建废话。 new FileWriter()已经完成了所有这些。即使你以正确的顺序完成它,你仍然会复制一切。

如果您是初学者,请不要让您的生活与NIO复杂化。