不同语言的新行

时间:2014-12-08 19:20:59

标签: java newline pascal eol

我在使用我的测试系统时遇到了问题。我正在用Java创建一个文件,用Java编写它,但是在Pascal编译器中读取它。 所以,这可能并不清楚,但是当我在Java(Eclipse)中做这样的事情时

    File file = new File("D:/i.txt");
    BufferedReader bf = new BufferedReader(new FileReader(file));
    PrintWriter pw = new PrintWriter(new FileWriter(file));

    pw.print("hey\n");
    pw.print("you");
    bf.close();
    pw.close();

它给我一个看起来像

的文件
  嘿。   你是

当我在Pascal语言上运行此代码时

begin
  assign(input,'D:/i.txt'); reset(input);
  while not eoln(input) do write(1);
 end.

这意味着:写入“1”直到找到新的行分隔符。 它不会停止写作。

但这没关系。这是另一个奇怪的事情:Pascal必须有换行符或行分隔符,或新的行指示符,我发现这是ASCII表(LF,新行)上的字符号10。

所以,我决定采取其他方式。

    File file = new File("D:/i.txt");
    BufferedReader bf = new BufferedReader(new FileReader(file));
    PrintWriter pw = new PrintWriter(new FileWriter(file));

    pw.print("hey"+(char)10);
    pw.print("you");
    bf.close();
    pw.close();

这个会给我与第一段代码相同的输出文件(最后显然)。 但是我所有的Pascal编译器仍然在抱怨并写下数百个。

如何解决新线路的问题? 谢谢。

1 个答案:

答案 0 :(得分:2)

我认为无限循环(写出数百个循环)是因为你从来没有从输入中读取任何东西,所以它永远不会在行尾。尝试在循环中放置read(input,ch);