Tag: 输出流

如何将字符串写入OutputStream

如何创建实现OutputStream并将内容写入其中的类? 例如,以下打印方法是错误的,不会编译。 有哪些选择或更好的技术? public class FooBarPrinter{ private OutputStream o; public FooBarPrinter(OutputStream o){ this.o=o; } public void print(String s){ o.write(s); } }

为什么关闭()输入流是好的?

我有Java编程语言的丰富经验。 但是我一直想到的一件事是为什么有必要close() java.io.InputStream或它的子类? 现在使用java.io.OutputStream ,比如FileOutputStream ,在写入文件之后,如果我们不close()输出流,我们打算在文件中写入的数据仍保留在缓冲区中并且不写入文件。 因此有必要close()一个OutputStream 。 但是在没有关闭 InputStream之后我从未有过任何痛苦的经历。 但是,互联网和书籍上的所有文章仍然表示关闭任何Stream总是好的,可能是InputStream或OutputStream 。 所以我的问题是为什么有必要close()一个InputStream ? 人们说你可能面临内存泄漏,你不要close()它。 那是什么样的内存泄漏呢?

具有并发输入/输出流的Java进程

我正在尝试创建一种控制台/终端,允许用户输入一个字符串,然后将其转换为一个进程并打印出结果。 就像一个普通的控制台。 但我无法管理输入/输出流。 我已经研究过这个post ,但是这个解决方案很遗憾不适用于我的问题。 与“ipconfig”和“cmd.exe”等标准命令一起,我需要能够运行脚本并使用相同的输入流来传递一些参数,如果脚本要求输入的话。 例如,在运行脚本“python pyScript.py”之后,如果它要求它(例如:raw_input),我应该能够将更多输入传递给脚本,同时还打印脚本的输出。 您期望从终端获得的基本行为。 到目前为止我得到了什么: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.text.BadLocationException; import javax.swing.text.Document; public class Console extends JFrame{ JTextPane inPane, outPane; InputStream […]

如何在Java中将数组写入outputStream

我想通过Socket发送多个随机值。 我认为数组是发送它们的最佳方式。但是我不知道如何将数组写入Socket outputStream? 我的java类 import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.Socket; import java.io.*; import java.util.Random; class NodeCommunicator { public static void main(String[] args) { try { Socket nodejs = new Socket(“localhost”, 8181); Random randomGenerator = new Random(); for (int idx = 1; idx <= 1000; ++idx){ Thread.sleep(500); int randomInt = randomGenerator.nextInt(35); sendMessage(nodejs, randomInt + […]

Java – System.out对性能的影响

我已经看到了这个问题 ,它有点类似。 我想知道它是否真的是影响我的应用程序性能的一个重要因素。 这是我的情景。 我有这个Java Web应用程序可以从电子表格上传数千个数据,每个行从上到下读取。 我正在使用System.out.println()在服务器端显示应用程序当前正在读取的行。 – 我知道创建一个日志文件。 实际上,我正在创建一个日志文件,同时在服务器的提示符下显示日志。 是否还有其他方法可以在提示符下打印当前数据?

在Java中获取命令提示输出到字符串

我需要一个java方法来读取命令提示输出并将其存储到String中以便读入Java。 这是我到目前为止所做的,但是工作不正常。 public void testGetOutput() { System.out.println(“\n\n****This is the testGetOutput Method!****”); String s = null; String query = “dir ” + this.desktop; try { Runtime runtime = Runtime.getRuntime(); InputStream input = runtime.exec(“cmd /c ” + query).getInputStream(); BufferedInputStream buffer = new BufferedInputStream(input); BufferedReader commandResult = new BufferedReader(new InputStreamReader(buffer)); String line = “”; try { while ((line […]

我需要刷新servlet输出流吗?

我是否需要从HttpServletResponse中“刷新”OutputStream? 我已经看到了应该关闭servlet输出流吗? 我不需要关闭它,但我不清楚是否需要冲洗它。 我也应该从容器中得到它吗? protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { byte[] response = getResponse(); String responseType = getResponseType(); response.setContentLength(response.length); response.setContentType(responseType); response.getOutputStream().write(response); response.getOutputStream().flush(); // yes/no/why? }

反序列化多个Java对象

亲爱的同事们, 我有一个Garden类,我在其中序列化和反序列化多个Plant类对象。 序列化工作正在进行,但是如果要在mein静态方法中将其分配给调用变量,则反序列化不起作用。 public void searilizePlant(ArrayList _plants) { try { FileOutputStream fileOut = new FileOutputStream(fileName); ObjectOutputStream out = new ObjectOutputStream(fileOut); for (int i = 0; i < _plants.size(); i++) { out.writeObject(_plants.get(i)); } out.close(); fileOut.close(); } catch (IOException ex) { } } 反序列化代码: public ArrayList desearilizePlant() { ArrayList plants = new ArrayList(); Plant _plant = null; […]

如何使用DefaultHttpClient写入OutputStream?

如何使用org.apache.http.impl.client.DefaultHttpClient获取OutputStream ? 我正在寻找一个输出流的长字符串。 使用HttpURLConnection您可以像这样实现它: HttpURLConnection connection = (HttpURLConnection)url.openConnection(); OutputStream out = connection.getOutputStream(); Writer wout = new OutputStreamWriter(out); writeXml(wout); 有没有使用类似于我上面的DefaultHttpClient的方法? 如何使用DefaultHttpClient而不是HttpURLConnection写入OutputStream ? 例如 DefaultHttpClient client = new DefaultHttpClient(); OutputStream outstream = (get OutputStream somehow) Writer wout = new OutputStreamWriter(out);

如何在Java FileOutputStream中编写新行

我想用FileOutputStream写一个新行; 我尝试了以下方法,但它们都没有工作: encfileout.write(‘\n’); encfileout.write(“\n”.getbytes()); encfileout.write(System.getProperty(“line.separator”).getBytes());