Java::Server中的客户机服务器程序未逐行读取文件中的文本
我正在尝试将一个Java::Server中的客户机服务器程序未逐行读取文件中的文本,java,sockets,Java,Sockets,我正在尝试将一个音频文件从服务器传输到客户端,并将其写入另一个文件。服务器正在从客户端读取文件,但它正在不断读取文件内容,忽略新行。例如,有一个类似“我在做客户机-服务器程序”的文本,文件的下一行是“Java”。服务器读取为“我正在进行客户机-服务器编程Java”。 我的问题是如何逐行阅读内容 我的代码如下 * 服务器 你的描述还不清楚,但我怀疑这就是问题所在: while((str = br.readLine()) != null) // reading line-by-line from
音频文件
从服务器传输到客户端,并将其写入另一个文件。服务器
正在从客户端读取文件,但它正在不断读取文件内容,忽略新行。例如,有一个类似“我在做客户机-服务器程序”的文本,文件的下一行是“Java”。服务器读取为“我正在进行客户机-服务器编程Java
”。
我的问题是如何逐行阅读内容
我的代码如下
*
服务器
你的描述还不清楚,但我怀疑这就是问题所在:
while((str = br.readLine()) != null) // reading line-by-line from file
{
sb.append(str);//append to stringBuffer sb
}
readLine()
的返回值不包含换行符。。。而且您没有将一个添加到StringBuilder
中。因此,如果您收到以下行:
- “第一”
- “第二”
- “第三”
// Or whatever line break you want
String lineBreak = System.getProperty("line.separator");
while((str = br.readLine()) != null)
{
sb.append(str);
sb.append(lineBreak);
}
请注意,如果您真的试图像这样传输音频文件,您不应该这样做-音频文件是二进制数据,因此您应该只从
InputStream
读取;根本不要使用读卡器,因为它是为文本数据设计的。您的描述很不清楚,但我怀疑这就是问题所在:
while((str = br.readLine()) != null) // reading line-by-line from file
{
sb.append(str);//append to stringBuffer sb
}
readLine()
的返回值不包含换行符。。。而且您没有将一个添加到StringBuilder
中。因此,如果您收到以下行:
- “第一”
- “第二”
- “第三”
结果将是“第一第二第三”。您只需要自己添加一个适当的换行符:
// Or whatever line break you want
String lineBreak = System.getProperty("line.separator");
while((str = br.readLine()) != null)
{
sb.append(str);
sb.append(lineBreak);
}
请注意,如果您真的试图像这样传输音频文件,您不应该这样做-音频文件是二进制数据,因此您应该只从InputStream
读取;根本不要使用读取器
,因为它是为文本数据设计的。音频文件中的新行?请编辑代码的缩进并删除一些连续的空白行。您让人们越容易阅读您的代码,您就越有可能得到答案。音频文件中的新行?请编辑代码的缩进并删除一些连续的空行。你越容易让人们阅读你的代码,你就越有可能得到答案。谢谢你宝贵的答案。我目前正在传输一个文本文件。@user88368:那为什么还要说你正在传输一个音频文件呢?请记住,如果您将代码结构为只传输任何二进制数据,那么它也将处理文本文件…谢谢您宝贵的回答。我目前正在传输文本文件。@user88368:那么为什么还要说您正在传输音频文件呢?请记住,如果您将代码结构为只传输任何二进制数据,那么也将处理文本文件。。。