我无法在文件中的新行上写入数据

时间:2016-04-09 07:19:58

标签: java file line newline printwriter

无论我做了什么,我都没有在文件中的新行上写新数据。 我该如何解决?

例如,玛丽的分数是100而史密斯的分数是150,但在txt文件中它是

 mary 100smith 150

我想smith 150换行

public class HighScores {
public HighScores(){

    String txt = "";
    Scanner sc = null;
    PrintWriter pw = null;
    File Checker = null;
    try{
        Checker = new File("highScores.txt");
        if(!Checker.exists()){
            Checker.createNewFile();
        }


sc = new Scanner(new File("highScores.txt"));
        while(sc.hasNextLine()){
            txt = txt.concat(sc.nextLine()+"\n");
        }

        String score=String.valueOf(Game3.score);
        String name = NewPlayer.name;

        txt = txt.concat(name + " "+ score +"\n");
        pw = new PrintWriter(Checker);// writing the checker
        pw.write(txt +"\r\n");

pw.println()也给出了同样的问题。

    }catch(FileNotFoundException fnfe){

        fnfe.printStackTrace();
    }catch(IOException ioe){
        ioe.printStackTrace();
    }finally{
        sc.close();
        pw.close();
    }

}

}

2 个答案:

答案 0 :(得分:0)

代码很狡猾,但实际上应该按照你的意愿行事。

您可能正在使用Windows记事本应用查看生成的文件。与大多数其他Windows应用程序一样,它希望"\r\n"作为换行符分隔符。

答案 1 :(得分:0)

使用以下代码

public class HighScores {
public HighScores() {
    String txt = "";
    Scanner sc = null;
    PrintWriter pw = null;
    File Checker = null;
    try {
        Checker = new File("highScores.txt");
        if (!Checker.exists()) {
            Checker.createNewFile();
        }

        sc = new Scanner(new File("highScores.txt"));
        while (sc.hasNextLine()) {
            txt = txt.concat(sc.nextLine() + "\n");
        }

        String score = String.valueOf(Game3.score);
        String name = NewPlayer.name;

        txt = txt + name + " " + score;
        pw = new PrintWriter(Checker);// writing the checker

        pw.println(txt);
    } catch (FileNotFoundException fnfe) {

        fnfe.printStackTrace();
    } catch (IOException ioe) {
        ioe.printStackTrace();
    } finally {
        sc.close();
        pw.close();
    }
}

}