我在使用我的测试系统时遇到了问题。我正在用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编译器仍然在抱怨并写下数百个。
如何解决新线路的问题? 谢谢。
答案 0 :(得分:2)
我认为无限循环(写出数百个循环)是因为你从来没有从输入中读取任何东西,所以它永远不会在行尾。尝试在循环中放置read(input,ch);
。