Java 数据阅读器跳过我的空新行 (\n)
Posted
技术标签:
【中文标题】Java 数据阅读器跳过我的空新行 (\\n)【英文标题】:Java data reader skips my empty new lines (\n)Java 数据阅读器跳过我的空新行 (\n) 【发布时间】:2011-11-18 00:24:45 【问题描述】:好的,我尝试了所有方法,但找不到答案。我的数据阅读器在读取 txt 文件时会跳过空的下一行。 它应该从 txt 文件中删除所有 cmets 并按原样打印其余数据。我的阅读器确实剥离了 cmets 并打印了数据,但它跳过了空的新行..
MyDataReader.java
public String readLine()
String buf = new String();
String readStr = new String();
int end = 0;
int done = 0;
try
// checks if line extraction is done and marker has non null value
while (done != 1 && marker != null)
readStr = theReader.readLine(); // Reads the line from standard input
if (readStr != null)
/* If the first character of line isnt marker */
if (readStr.length() > 0)
if (!readStr.substring(0, 1).equalsIgnoreCase(marker))
end = readStr.indexOf(marker); // checks if marker exists in the string or not
if (end > 0)
buf = readStr.substring(0, end);
else
buf = readStr;
done = 1; // String extraction is done
else
buf = null;
done = 1;
// catches the exception
catch (Exception e)
buf = null;
System.out.println(e);
return buf;
TestMyDataReader.java
String myStr = new String();
myStr = _mdr.readLine();
while (myStr != null)
//System.out.println("Original String : " + myStr);
System.out.println(myStr);
myStr = _mdr.readLine();
【问题讨论】:
【参考方案1】:if (readStr.length() > 0)
这是跳过空行的代码行。
【讨论】:
谢谢.. 我会想办法处理 cmets :D 完成...感谢您指出...我不知道究竟是哪个部分导致了问题。现在它可以正常工作了。 @BhrugeshPatel 这行代码跳过了空行。您还有另一行跳过 cmets 的代码。只需删除这一行。 摆脱它。添加了另一个检查..现在一切正常。【参考方案2】:此代码中有很多问题,但您要处理的主要问题是 readLine 结果中不包含新行。因此,您的 if 语句不正确(该行实际上是空的
【讨论】:
哈哈……这让我很难过……但我会继续努力的。你能指出你在代码中发现的弱点吗?将不胜感激:)【参考方案3】:您的阅读器不会在 readStr 中包含换行符,因此在 "\n" 行中读取将使 readStr 为 "",并且
readStr.length() > 0
将评估为假,从而跳过该行。
【讨论】:
以上是关于Java 数据阅读器跳过我的空新行 (\n)的主要内容,如果未能解决你的问题,请参考以下文章