Phantomjs - 使用fs.write()将数据写入新行不会转到下一行

时间:2014-02-26 22:06:43

标签: javascript phantomjs casperjs

我无法让phantomjs写入新行。我可以让它替换数据,我可以让它写到最后,我可以让它注册“\ n”代码,但它只是从字符串中删除它并没有实现它。

以下是一些用于写入文件的代码示例。

fs.write("example.txt", "write me first", "a");
fs.write("example.txt", "\n write me to the next line bro!", "a");

但输出如下

 write me first write me to the next line bro!

有谁知道如何解决这个问题?如果全部在一行上,很难查看带有历史记录的错误日志。

我试过“\ n”和“\ r”

----- ------编辑

我已经成为一个有点强大的开发者。我现在意识到这是正确的。这不是我的代码,甚至是phantomjs / casperjs的问题,而是记事本的问题。

由于我缺乏简单性,我没有使用ide。因此,我遇到了微软试图在记事本中重新格式化的问题。

如果任何其他新手使用记事本或任何其他默认文本编辑器,您也可能会遇到此问题。

考虑切换到众多ide或代码编辑器之一。 Windows上的简单版本notepad ++或Mac上的textwrangler应该会给你一些与默认编辑器类似的感觉。

4 个答案:

答案 0 :(得分:4)

Windows使用\ r \ n作为换行符。

\ r是回车符,\ n是换行符。

这是对旧打字机的引用,它需要将打字头(笔架)带回每个新行的开头。

答案 1 :(得分:0)

您使用的是什么版本的PhantomJS?

在Linux下,使用PhantomJS 1.9.7,我可以使用以下test.js

fs = require('fs');
fs.write("test.dat", "write me first", "a");
fs.write("test.dat", "\nwrite me to the next line", "a");
phantom.exit();

test.dat运行phantomjs test.js获取以下输出:

write me first
write me to the next line

答案 2 :(得分:0)

这是我的老帖子。我把它改写为听起来更专业。

上述问题是微软记事本的问题。它忽略了某些车厢。我确定有一种方法可以让它注册,但默认情况下它并没有在我当时正在使用的Windows 7上打开。

更高级的编辑器,或者基本上任何代码编辑器/ ide应该能够拿起车厢。

对于其他新手来说,车厢基本上是“下一行”的原始代码。

^^>>我知道这不太可能是对此的技术回应,但对于新手来说是一个体面和明确的回应,他可能是通过谷歌找到这个页面的人之一。请不要将其编辑为超级高级定义。

答案 3 :(得分:0)

如果使用notepad ++打开输出文件,您将获得带有新行的数据。普通记事本不显示断裂线。