在下面的代码中(即在“ filecontents”函数中),我实际上是在尝试打开和读取文件的内容。
示例:输入文件包含ABCD EFGH
在try块中,以下代码行在每行之后添加“,”
while ((line = reader.readLine()) != null)
{
content.add(line);
}
return content;
即,如果文件包含内容ABCD EFGH-上面的代码将输出作为ABCD EFGH返回。
有什么方法可以将逗号替换为空格(也许)并将字符串作为ABCD EFGH发送给调用函数吗?
我尝试了不同的方法-ReplaceAll,Replace,List to String,Stringbuffer等,但是每次尝试都会导致其他地方出现错误。
下面是示例代码:
//功能1
private static void read (String file)
{
String filename = "C:\Desktop\Sample.txt";
List<String> records = filecontents (filename);
}
//以上代码将在下面的代码中调用以下代码,其中文件名作为参数传递
private static List<String> filecontents(String file)
{
List<String> content = new ArrayList<String>();
try
{
//Open the text file
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null)
{
content.add(line);
}
//return content;
//Finding out a way to remove the commas and pass back the lines
(without commas) to the calling function
reader.close();
}
catch (Exception e)
{
//Catch block
}
return null;
}
答案 0 :(得分:2)
BufferedReader的readline()不添加逗号。它读取字符串,直到到达\n
或\r
之类的行分隔符为止。
我猜正在发生的是您的ABCD和EFGH作为两个单独的元素出现在列表中,而您实际上在打印输出中看到的是用逗号分隔这两个元素。
尝试创建一个新的文本文件并手动编写
ABCD EFGH
,无需复制和粘贴。您的文本文件很可能包含隐藏的行分隔符,这些行分隔符弄乱了您的缓冲阅读器并分隔了行。