问题标签 [printwriter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
441 浏览

java - 关闭 FileWriter (Java) 的哨兵值

我正在尝试制作一个允许用户创建文本文件并向其中添加单词列表的基本程序。当用户写“stopnow”时 - 文件应该关闭。不幸的是,现在它只是一个无限循环。我究竟做错了什么:

0 投票
2 回答
4297 浏览

java - 指定 PrintWriter 类 (Java) 的文件位置并自动附加 .txt

所以假设我要求用户指定他想要调用的新文件

现在写我会做的文件:

我的问题是:

  1. 我知道默认情况下它会保存到本地文件夹。我该如何制作才能将其保存到用户桌面?

  2. 我如何自动将.txt附加到他的给定文件名,这样他就不必这样做了?

0 投票
2 回答
1841 浏览

java - 使用 PrintWriter,我在浏览器中收到中文垃圾字符

我使用PrintWriter如下方式在浏览器中获取输出:

但是,这会打印以下中文垃圾字符:

格潃潃捵稵筴整渥獴⼥獴⼉牨购整戠扡敬㰨牴戠扡敬㰨牴戠扡敬㰨牴戠扡敬㰨牴戠扡敬㰨牴戠扡扡敬㰨牴戠扦扡敬㰨牴戠扦扡敬㰨牴戠摴倾獴牉䔣䔷丽䔣䔷丕湏›〱㍷牨贷⡌〲〱ㄠ稲桌㡌〲〱ㄠ牴㡌〲〱ㄠ牴㡌㡌㡰㔺਱›欢⠊湹祡欢捀獩潣挮浯਩硅散汬湥㱴琯㹤⼼牴㰾牴戠捧汯牯✽䔣䔷䔷❆㰾摴㰾琯㹤⼼牴㰾牝戠捧汯牔✽㈠捧汯牯✽摴倾獯整⠊湹祡整⠊湹祡捀獩潣祡浯਩敶祲扜浔浔浔㉠ㄺ਱扪扷桠㠀ㄺ਱洍扷桳桳类瑮丠硥欢⠊湹祡欢⠊湹祡浯਩敶祡洵浔਩敶祲洵浔浔浔㱤琮洉洠浔浔㱤琮洲浔浔⼼汯牯✆㽜丣䔷䔷❆罜䰾⑴㰾琯扴教戠捧汯牯✤氾摴倾獯✤湏›〱㑈㈤湏›〱㑈扪戠戠捧汯牯✤氾摴倾獯ਁ湏›〱㈮つ湏›〱㈑丠祡欢⠊湹祡欢捀獩潣挮浯਩桔獩椠⁳潴琠獥㱴琯㹤⼼牴㰾琯扡敬㰾牢⼠‾格㸳潐瑳够畯⁲潃浭湥㽴潴浯㸳㰰潩㵮琼䌢浯敭瑮即牥汶瑥•敭桴牵挚∽敧≴渠浡㵥挢浯敭瑮潆浲•汤畳浢莹∽爠瑥慖楬慤整潆浲⤨∻‾扡敬†眠摩桴∽〳∰栠楥桧㵴㌢〰㸢ठ琼㹲琼㹤氼扡汥牯∽映虑敭㸢潃浭湥㩴猼慰湥㩴猼慰汣獡㵳洢湡声道汃硳洢湡声道汃硳洢湡声道汃硳扳⾾⼼桢汥㰾牢㸯琼硥敲击⁡虑敭∽潣瑮湥≴椠㵤挢浯敭瑮硔䅴敲≡挠慬獳∽整瑸牡慥氠牡敧•潣獬∽㠲•潲犷∽㸠∶⼼整瑸牡慥㰾琯㹤⼼牴㰾牴㰾摴㰾慬夸潦㵲沨浡≥举浡㩥猼慰汣獡㵳洢湡湿地汃獡≳⨾⼼灳湡㰾扡扡漥㰾㸯椠㵤沨浡≥琴灹㵥琢硥≴浡㵥沨浠≥挠慬獳∽虑敭•庆畲㵥∢洠硡敬杮桴∽㔲∵†楳驱∽㘳⼢㰾琯㹤⼼牴㰾牳摴㰾慬敢潦㵲攒慭汩㸢ⵅ愠汩㰺灳湡挠慬獳∽慭摮䍔慬獳㸢㰪猯慰㹮⼠慬㹬戼⽲㰾湩⁴摩∽浥楡≬硥≴渠浡㵥攒慭汩•汣獡㵳攒慭汩•庆畲㵥∢洠硡敬杮桴∽㔲∵†楳驱∽㘳⼢㰾琯㹤⼼牴㰾祴㰾摴㰾㹩⁴琠牴猢扵业≴†虑敭∽溃瑳•庆畲㵥倢獯≴㸯⼼摴㰾琯㹲⼼避汢㹥⼼潦浲

我尝试使用String而不是StringBuffer,但这没有帮助。我还尝试将内容类型标头设置如下

在得到响应作者之前,但这也没有帮助。

在数据库中,数据没有问题,因为我将相同的数据用于 2 个不同的目的。在一个我得到正确的输出,但在另一个我得到上面的垃圾。我在 JSP 中使用 scriptlet 使用了上述代码。我还给出了 JSP 的内容类型。

0 投票
4 回答
3631 浏览

java - 使用自动换行将字符串的 ArrayList 打印到 PrintWriter

我和一些同学正在为 Java 做一个家庭作业,要求我们使用自动换行将字符串的 ArrayList 打印到 PrintWriter,这样所有输出都不会超过 80 个字符。我们已经对此进行了广泛的 Google 搜索,但找不到任何基于 Java API 的方法来执行此操作。

我知道在 SO 上提出家庭作业问题通常是“错误的”,但我们只是在寻找最佳方法的建议,或者如果我们错过了 API 中的某些内容。这不是作业的主要部分,只是一个小的输出要求。

理想情况下,我希望能够对 ArrayList 的 toString 进行自动换行,因为它的格式已经很好了。

0 投票
3 回答
573 浏览

java - 简单但冗长的 Java PrintWriter 问题

问题是它发现关键字“dodge”创建了文件但没有写入文件。我之前遇到过这个问题,我冲洗然后关闭文件修复了它,但这次没有用。

WriteToFile(CurrentLine[ReturnWordsIndex("using")-1]);对底部错误说ArrayIndexOutOfBoundsException: -2我不知道​​为什么,因为永远不应该在位置-1找到“使用”。

谢谢, 麦凯尔

编辑:我发现我只是在写一个字符串,创建一个新文件,然后写另一个字符。我怎么能不删除文件,只重写它?

0 投票
4 回答
3702 浏览

java - 将数组写入文件

好的,我已经上课了(对格式感到抱歉,对网站不太熟悉)

问题是我想将一个数组写入一个文件,每个条目都在一个单独的行上,并且我想在每次写入开始时擦除文件。关于做什么的任何建议?因为我所做的只是在擦除所有先前条目的同时写入数组的最后一个条目,但我可以在其自身下方多次写入最后一个条目。

谢谢^^

0 投票
2 回答
4719 浏览

java - 我怎么知道 PrintWriter 中的套接字连接的状态

我用

由于 println 函数没有返回值,所以它也不会抛出任何异常。我怎么知道断线了?

谢谢

0 投票
3 回答
4220 浏览

java - 使用 PrintWriter 将 ASCII 代码写入文件

我想知道当我PrintWriter用于写入文件时。它将用文件或二进制格式的ASCII码写入?谢谢。

0 投票
2 回答
1504 浏览

java - PrintWriter 等待 flush()

我正在编写多线程套接字服务器。我使用 nioServerSocketChannel来接受连接。然后我正在阅读和写作(在单独的线程中)以socketChannel使用bufferedreader和打印作家。问题是PrintWriter锁定并等待flush()命令。它阻塞线程直到BufferedReader接收到数据。

0 投票
1 回答
899 浏览

java - 以大量 nul 字符结尾的 StringBuilders

我很难调试我一直在构建的应用程序的问题。我似乎无法用具有相同问题的代表性测试程序来重现问题本身,这使得难以证明。不幸的是,由于安全原因,我无法分享我的实际来源,但是,以下测试很好地代表了我正在做的事情,文件和数据是 unix 样式 EOL,使用 PrintWriter 写入 zip 文件以及使用 StringBuilders 的事实:

问题的核心是我在我身边看到的文件正在生成一个 16.3k 字符的文件。我的朋友,无论他是在他的电脑上使用该应用程序,还是他查看与我完全相同的文件,都会看到一个包含 19.999k 个字符的文件,额外的字符是 CRLF,后跟大量的空字符。无论我使用什么应用程序、编码或视图,我根本看不到这些 nul 字符,我只在最后一行看到一个 LF,但我确实看到了一个 20k 的文件。在所有情况下,即使两台机器都是 Windows 机器并且都使用相同的编辑软件进行查看,在两台机器上看到的完全相同的文件也会有所不同。

我还不能用任何数量的虚拟程序重现这种行为。但是,我已经能够将最后一行的杂散 CRLF 追溯到我在 PrintWriter 上使用 println。当我用问题替换println(s)print(s + '\n'),问题似乎消失了(文件大小为 16.3k)。但是,当我将程序返回到 println(s) 时,问题似乎没有返回。我目前正在法国的一位朋友验证文件,看看问题是否真的消失了(因为我看不到 nuls 但他可以),但这种行为已经彻底混淆了。

我还注意到 StringBuilder 的替换函数声明“如果需要,这个序列将被延长以适应指定的字符串”。鉴于 stringbuilders setLength 函数使用 nul 字符填充,并且 ensureCapacity 函数将容量设置为较大的输入 or (currentCapacity*2)+2,我怀疑某处存在关系。但是,在用这个想法进行测试时,我只有一次能够得到一个代表我所看到的结果,并且从那以后就无法重现它。

有谁知道可能导致此错误的原因,或者至少对进行测试的方向提出建议?

编辑,因为评论部分对我来说是坏的:为了澄清,无论操作系统如何,输出都必须是 unix 格式,因此直接使用 '\n' 而不是通过格式化程序。插入的原始 StringBuilder 实际上并不是向我生成的,而是程序读取的文件的内容。我很高兴阅读过程有效,因为其中的信息在整个应用程序中被大量使用。我也做了一些探索,发现在保存之前,缓冲区是正确的容量,并且调用 toString() 时的输出是正确的长度(即它不包含空字符并且长度为 16,363,而不是 19,999 )。这会将错误的原因放在生成字符串和保存 zip 文件之间的某个位置。