gpt4 book ai didi

Java PrintWriter 打印字符不显示最后一个字符

转载 作者:行者123 更新时间:2023-12-01 19:01:41 26 4
gpt4 key购买 nike

我真的不明白问题出在哪里。我想将字符打印到文本文件中,并且我使用 printWriter 来执行相同的操作。如果文件有一个“;”,我想用一个新行替换它,这就是我正在做的,

public static void downloadFile_txt(String sourceFilePathName, String contentType, String destFileName, HttpServletResponse response) throws IOException, ServletException
{
File file = new File(sourceFilePathName);
//FileInputStream fileIn = new FileInputStream(file);
FileReader fileIn = new FileReader(file);
long fileLen = file.length();
response.setContentType(contentType);
response.setContentLength((int)fileLen);

response.setHeader("Content-Disposition", String.valueOf((new StringBuffer("attachment;")).append("filename=").append(destFileName)));

PrintWriter pw = response.getWriter();


// Loop to read and write bytes.
int c=-1;
while ((c = fileIn.read()) != -1)
{

if(c!=59)
{
pw.print((char)c);
}
else
{
pw.println();
}
}
pw.flush();
pw=null;
fileIn.close();
}

但是我的文件正在打印除最后一个字符之外的所有内容。例如:输入=

:00004000,FFAD,2 Byte Ch;
:0000FFBD,FFBE,2 Byte Ch;
:0000FFBF,FFFF,2 Byte Ch;

我得到的输出

:00004000,FFAD,2 Byte Ch
:0000FFBD,FFBE,2 Byte Ch
:0000FFBF,FFFF,2 Byte C

最后一个“h”没有被打印。

提前致谢

最佳答案

一个pw.flush();可能对你有帮助。

public class FlushPrintWriter {

public static void main(String[] args) throws IOException {
FileReader fileIn = new FileReader("in.txt");
FileWriter out = new FileWriter("out.txt");
PrintWriter pw = new PrintWriter(out);
int c;
while ((c = fileIn.read()) != -1) {
if(c!=59) {
pw.print((char)c);
} else {
pw.println();
}
}
pw.flush();
}
}

输出

:00004000,FFAD,2 Byte Ch:0000FFBD,FFBE,2 Byte Ch:0000FFBF,FFFF,2 Byte Ch

正如预期的那样。

(不要像这样处理你的 IOException - 并关闭你的读者和作者 - 这仅用于演示!)

<小时/>

编辑:现在你的代码甚至无法编译(两个名为 fileIn 的变量?)!

即使运行您现在提到的 servlet 代码,我也无法重现您的问题,并且输出如您所期望的那样。所以这就是我的放弃。我开始怀疑最后的 ;不在您的源文件中,或者您的应用程序正在进行更多处理但您没有向我们展示。

关于Java PrintWriter 打印字符不显示最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12054778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com