Tag:

Java InputStream无法从JAR中读取文件

我试图从我的可执行文件.jar文件中读取一个文件,但它不断获取空值。 我有这个代码: public DanceEventTicketScanner(String txtfile){ sv = new ScannerView(this); findcode = false; InputStream is = this.getClass().getResourceAsStream(“/resources/copy.csv”); if (is == null) JOptionPane.showMessageDialog(null, “Resource not located.”); } 在JAR文件中,我(正常情况下)包含所有.class文件的文件夹,并在同一目录中包含一个名为resources的文件夹,其中包含copy.csv文件。 但是,此代码无法识别该文件。 有没有人有任何想法?

如何保持sysout和syserr流不混合?

在我的代码库中是(非常简化)以下: public static void main (String[] args) { System.out.println(“Starting application”); try { System.out.println(“About to validate”); validate(args); catch (Exception e) { e.printStackTrace(); } } public static void validate(String[] args) { System.out.println(“Your first arg is ” + args[0]); if (someProblemWith(args)) { System.out.println(“Your args are wrong. It should be: …”); throw new BadArgsException(e); } } 哪个工作正常。 请注意,上面的示例代码是设计的,只是为了在exception和堆栈跟踪打印之前显示多个日志语句。 这通常意味着我的上一个日志记录语句在堆栈跟踪输出的中间丢失。 […]

InputStream不会重置为开头

InputStream data = realResponse.getEntity().getContent(); byte[] preview = new byte[100]; data.read(preview, 0, 100); //现在我想稍后引用InputStream,但是我希望它从流的开头,而不是100个字节。我尝试mark()为100,然后在读取前100个字节后reset() ,但这也不起作用。 有任何想法吗? 可能是一个愚蠢的错误..只是没有看到它。

具有并发输入/输出流的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 […]

流式传输时缓冲区字节数组如何连续填充?

下面的代码用于读取Files int bytesRead; byte[] bytes = new byte[1000]; //buffer FileInputStream fis = new FileInputStream(uploadedFile); while ((bytesRead = fis.read(bytes)) != -1) { fis.read(bytes, 0, bytesRead); } fis.close(); 根据read()方法的api 将此输入流中的b.length个字节数据读入一个字节数组。 此方法将阻塞,直到某些输入可用。 没有指定它重新填充bytes数组,但是流填充array直到file成功read. 。 但内部如何保持这种魔力? 我看过源代码或读取方法 public int More …read(byte b[]) throws IOException { 214 return readBytes(b, 0, b.length); 215 } 和readBytes的源代码是 200 private native int More …readBytes […]

Java InputStream读取问题

我有一个Java类,我通过InputStream读取数据 byte[] b = null; try { b = new byte[in.available()]; in.read(b); } catch (IOException e) { e.printStackTrace(); } 当我从IDE(Eclipse)运行我的应用程序时,它非常有效。 但是当我导出我的项目并将其打包在JAR中时,read命令不会读取所有数据。 我该怎么办呢? 当InputStream是File(~10kb)时,通常会发生此问题。 谢谢!

是否有必要关闭FileWriter,前提是它是通过BufferedWriter编写的?

考虑一下BufferedReader,如下所示: writer = new BufferedWriter(new FileWriter(new File(“File.txt”), true)); 在这种情况下,在应用程序结束时,我正在使用writer.close()关闭writer.close() 这还够吗? 用new FileWriter(new File(“File.txt”), true) FileWriter创建的new FileWriter(new File(“File.txt”), true)是否需要关闭?

如何使用URLConnection上传二进制文件

为了将二进制文件上传到URL,我建议使用本指南 。 但是,该文件不在目录中,而是存储在MySql db中的BLOB字段中。 BLOB字段在JPA中映射为byte[]属性: byte[] binaryFile; 我稍微修改了从指南中获取的代码,这样: HttpURLConnection connection = (HttpURLConnection ) new URL(url).openConnection(); // set some connection properties OutputStream output = connection.getOutputStream(); PrintWriter writer = new PrintWriter(new OutputStreamWriter(output, CHARSET), true); // set some headers with writer InputStream file = new ByteArrayInputStream(myEntity.getBinaryFile()); System.out.println(“Size: ” + file.available()); try { byte[] buffer = new byte[4096]; int […]

将正则表达式应用于Java I / O流

我寻找一个将正则表达式应用于Java I / O流的示例,该流不会简单地将流转换为字符串,因为我希望保留二进制数据。 互联网上的大多数例子都集中在文本数据上……

Java – 如何从inputStream(socket / socketServer)读取未知数量的字节?

希望使用inputStream在套接字上读取一些字节。 服务器发送的字节可以是可变数量的,并且客户端事先不知道字节数组的长度。 怎么可能完成? byte b[]; sock.getInputStream().read(b); 这会导致Net BzEAnSZ出现“可能未初始化错误”。 帮帮我。