当我在Windows中使用\r\n
时,要在文件中打印换行符,如果文件为<anyfile>.v
,则其有效,即扩展名为.v
。但是,如果文件扩展名更改为.ucf
,则会开始打印一些垃圾。我是通过Java代码完成的。有什么帮助吗?
.v
是一个verilog文件,.ucf
是Xilinx支持约束文件。两者都由Xilinx软件处理。
在跑步时,
import java.io.*;
public class ucf {
public static void main(String[] args) throws IOException {
FileWriter output = new FileWriter("sample.ucf");
output.write("foo\r\n\bar\r\n");
output.close();
}
}
生产垃圾。
答案 0 :(得分:3)
听起来像是在写Writer或PrintWriter。
作家需要CharSet(例如UTF-8)才能将字符转换为二进制数据。如果您在构建Writer时未明确提供字符集,则将使用JVM's default charset。
我猜你使用一个字符集编写文件,而Xilinx正在使用不同的字符集读取文件,从而在Xilinx中造成垃圾。
请注意,\r\n
并非所有操作系统的标准。要在运行时获取操作系统的换行符,您可以使用System.getProperty("line.separator")
而不是硬编码。