当前位置: 首页 > 面试题库 >

如何在Java中规范EOL字符?

公宜春
2023-03-14
问题内容

我有一个linux服务器和许多具有许多操作系统的客户端。服务器从客户端获取输入文件。Linux具有行结束符LF,而Mac具有行结束符CR,Windows具有行结束符CR
+ LF

服务器需要作为行字符LF的结尾。使用java,我想确保该文件将始终使用linux eol char LF。我该如何实现?


问题答案:

结合两个答案(由Visage和eumiro撰写):

编辑: 阅读评论后。 线。 System.getProperty("line.separator")那就没用了。
在将文件发送到服务器之前,
请先打开它,替换所有EOL并回写确保使用DataStreams这样做,并以二进制形式写入


String fileString;
//..
//read from the file
//..
//for windows
fileString = fileString.replaceAll("\\r\\n", "\n");
fileString = fileString.replaceAll("\\r", "\n");
//..
//write to file in binary mode.. something like:
DataOutputStream os = new DataOutputStream(new FileOutputStream("fname.txt"));
os.write(fileString.getBytes());
//..
//send file
//..

replaceAll方法有两个参数,第一个是要替换的字符串,第二个是替换字符串。但是,第一个被视为正则表达式,因此'\'被解释为正则表达式。所以:

"\\r\\n" is converted to "\r\n" by Regex
"\r\n" is converted to CR+LF by Java


 类似资料:
  • 问题内容: 我需要找到两个WSDL文件中的差异。我从这里像这样漂亮地打印它们开始,但是我看到在两个定义的文件中(无论出于何种愚蠢的原因)都以不同的顺序进行了相同的操作(例如s)。我想进一步规范化这些文件,以便以后可以使用诸如standard之类的东西来查找差异。 不知道WSDL是否有定义的规范形式,我知道有Canonical XML ,但是我需要进一步讲解并排序所有顺序无关紧要的东西。 问题答案:

  • 问题内容: 我目前正在滚动自己的小ORM,发现自己面临创建规范化映射的任务,以防止从数据库中多次加载同一实体。 我目前的方法是使用。该键是映射数据库实体的主键(如果是复合键,则为),其值为。 我的主要问题是如何清理地图?当不再使用某个对象时,映射中的弱引用将消失,而我只会在下一次查找时发现它(或者,如果我不再查找该对象,则永远不会)。当弱引用被清除时,我可以将它们注册为a ,然后在每次查找时检查该

  • 问题内容: PHP中是否存在用于URL规范化的预先存在的函数或类? 具体来说,请遵循Wikipedia文章中有关URL规范化的语义保留规范化规则(或我应该遵循的任何“标准”)。 将方案和主机转换为小写 转义序列中的大写字母 添加尾随/(到目录,而不是文件) 删除默认端口 删除点段 现在,我认为我将只使用,并分别应用规则,但我希望避免重新发明轮子。 问题答案: Pear Net_URL2库看起来至少

  • 斜杠的数目可以是任意数目。如何在java中规范化路径,比如:

  • 我试图传达身份验证/安全方案需要设置一个头,如下所示: 这是我根据swagger文档所做的:

  • 编程规范是对编程的一种约定,主要作用是增强代码的可读性和可维护性,便于代码重用。 首先要求程序中的各个要素都遵守命名规则,然后在编码中严格按照编码格式编写代码。命名规则包括以下几点。 包的名称由一个小写字母序列组成。 类的名称由大写字母开头,其他字母都由小写的单词组成。 类的实例的名称由一个小写字母开头,后面的单词由大写字母开头。 常量的名称都大写,并且指出完整含义。 参数的名称无其他具体规定。