Tag: io

Hex String to Image

我有一个hex字符串,看起来像: String hexImage =”0xFFD8FFE000104A46494600010200006400640000FFEC00114475636B79000100040000003C…” 我需要使用Java转换为图像。 我已经尝试使用org.apache.commons.codec.binary.Hex类首先转换为字节数组。 FileOutputStream稍后将其转储到文件中。 char[] charArr= hexImage.toCharArray(); byte[] byteArray = Hex.decodeHex(charArr); 但是Hex类中的解析器会出现扼流圈,并带有Decoderexception:奇数个字符。 无论我使用什么方法转换为字节数组,它都会失败。 fileformat绝对是JPEG。 我已经尝试从字符串中删除此 0xFF,但此时图像已损坏。 0xFF我认为是罪魁祸首 – 任何人都有任何想法,我需要做些什么才能纠正这个问题?

播放AudioInputStream时出错

我想创建2个可以启动和停止背景音频的JMenuItem 。 这是我的代码: public class MainClass extends JFrame { private AudioInputStream audioInputStream; private Clip clip; public MainClass(String title) { try { audioInputStream = AudioSystem.getAudioInputStream(new File(“Background.wav”)); clip = AudioSystem.getClip(); clip.loop(Clip.LOOP_CONTINUOUSLY); clip.open(audioInputStream); } catch(Exception e) { System.out.println(“Error with playing sound.”); e.printStackTrace(); } } public void startSound() { clip3.start(); settingSubMenuItem1.setEnabled(false); settingSubMenuItem2.setEnabled(true); } public void stopSound() { clip3.stop(); settingSubMenuItem1.setEnabled(true); […]

NotSerializableException

基本上,我编写了一个程序,在屏幕上绘制形状,并将每个形状保存到ArrayList中。 我想要做的是弄清楚如何将ArrayList保存到文件中,以便我可以稍后再调用它并编辑已存在的形状。 因此,当我使对象Shape可序列化时,我一直在弄清楚为什么我一直得到一个NotSerializableException。 下面是我的代码的保存部分和Shape对象。 save.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ int returnVal = fc.showSaveDialog(BallWorld.this); if(returnVal == JFileChooser.APPROVE_OPTION){ File file = fc.getSelectedFile(); ArrayList list = bp.shapes; FileOutputStream fos = null; ObjectOutputStream oos = null; try{ fos = new FileOutputStream(file); oos = new ObjectOutputStream(fos); oos.writeObject(list); oos.close(); } catch(IOException ex){ ex.printStackTrace(); } } } }); public class Shape […]

在写入文件时读取文件

我必须读取tomcat日志文件,过了一段时间(例如:一小时)我将再次读取该文件(仅用于新添加的内容),所以我创建了RandomAccessFile来记录我完成的最后一个位置,并使用BufferedReader.readLine()方法。 但是,我发现有时我无法读取整个文件行。 例如,tomcat正在编写以下内容(仅举例): 192.168.0.0 localhost /index.html ….. 在这一刻,当我读到时,我可能会得到结果: 192.168.0 0 localhost /index.html ….. 要么 192.168.0.0 localhost /index.html ….. 也就是说,如果正在编写此行,我的读者会读取不完整的行。 所以我想知道是否有任何想法来决定正在阅读的线路是否已经完成? 这是核心代码: raf = new RandomAccessFile(file, “r”); raf.seek(pos); while ((line = raf.readLine()) != null) { System.out.println(line); } pos = raf.getFilePointer(); raf.close(); 我试过这个(添加contidtion): raf = new RandomAccessFile(file, “r”); raf.seek(pos); while ((line = raf.readLine()) != null) { if(line.chartAt(line.length()-1)==’\n’){ […]

使用DataOutputStream将消息写入客户端套接字仅在关闭Client Socket后发送到服务器套接字为什么?

我用Java编写了一个Socket-Client编程。 我正在使用DataOutputStream将消息发送到服务器套接字。 有时,DataOutputstream上的写入消息未发送到ServerSocket。 我认为这是因为我发送消息后没有冲洗。 我这样做但没用。 如果我终止类执行,那么只有我从ServerSocket接收消息。 我的代码: public class LoggingClient { LinkedBlockingQueue messages = new LinkedBlockingQueue(); public static LoggingClient clientObj; /* * waiting 2 seconds for connecting centralized log server . If it’s not reachable writing log’s in local machine * this log’s will be collected on eclipse restart. */ public static final int SOCKET_TIMEOUT […]

Java:如何在抛出exception后继续读取文件

所以我的教授给我们分配了一个项目,我们必须从文本文件中获取命令并使用它们来驱动我们程序的流程。 这些命令如起飞,着陆,装载货物,卸载货物等等 – 用于模拟类似飞机的物体。 有时这些命令执行起来没有意义,比如飞机在飞行中装载货物。 因此,为了防止这样的事情发生,我们必须在我们自己的exception类中进行编码,即“如果在飞行中命令飞机装载货物,则抛出InvalidActionException” 我的问题是:如何在抛出exception后继续从文本文件中读入命令(看看它们抛出后如何,程序无法进一步发展 这是我想要做的概述: Scanner input = new Scanner(new FileInputStream(“stuff1.txt”)); while(input.hasNextLine()) { try { //execute commands by reading them using input.nextLine() } catch() { //catch any exceptions and ignore them… continue to read //the file for more commands } } 我将不胜感激任何帮助。 谢谢。

控制台输入错误java.lang.NullPointerException

我试过代码: import java.io.Console; public class Default { public static void main(String args[]) throws IOException { Console console = System.console(); String testing = console.readLine(“Enter Name: “); System.out.println(“Entered Name: “+ testing); } } 转到exception,出现以下错误: Source not found. NullPointerException 我正在使用Eclipse Juno EE进行调试..! 以上编写的代码的参考链接在这里

从不同的类写入jTextArea

只是想知道是否可以从一个单独的类附加到一个类中的jTextArea? 我基本上有一个简单的类,它不断运行计算,我想在我自己的类中创建的GUI上查看输出。 程序通过System.out.println执行正常,但我想在我的textarea上查看它。 非常感谢任何指导。 更新 – 以下代码是我正在运行的。 有问题的区域如下(这是一个相当大的类的方法): System.out.println(“From Server:” + sentenceFromServer); 我希望将此输出写入单独的jTextArea,该jTextArea位于下面的类之下的另一个类中。 客户类 public void run() { SocketForm form = new SocketForm(); //File file=null; long startTime; // Starting time of program, in milliseconds. long endTime; // Time when computations are done, in milliseconds. double time; System.out.println(“Variables Set”); String serverName = “localhost”; try { //if […]

如何执行控制台或GUI输入,就像它是真正的Java代码一样?

我希望能够以相同的方式输入java命令/代码以在运行时(在执行“持久性”程序期间)执行,或尽可能接近,如果它存在则执行相同的代码关于程序的源代码(作为软件的一部分编程),使用GUI元素,如jTextArea。 以下StackOverflow问题似乎是相关的,但是,与他们的答案一起,似乎并不是我正在寻找的。 如何从Java中获取来自控制台类的输入? 在java中使用GUI进行控制台输入和输出 我不想“能够从特定的控制台输入触发操作,并将反馈打印到控制台”,就像那些问题和答案中描述的控制台应用程序的情况一样。 我想要的是“能够执行实际的java代码,我无法预测或控制,从控制台(或GUI)输入”。 注意:“我无法预测也无法控制”这里指的是“开发人员”……当然,如果我是输入代码的人,我可以预测并“控制”它,就像“用户”那样。 由于java使用虚拟机环境,我认为它可能会执行“运行时输入的代码”……但我不确定这样的事情是否可能。 例如,我想在“GUI控制台”(例如jTextArea)中输入for(int i=0; i<3; i++){System.out.println(i);}的运行时输入,按下回车键或单击“发送”按钮,执行(“编译”和“?”),并给出相同的输出,就好像它是原始源代码的一部分,因此: 0 1 2 所以我想知道以下内容: 可能吗? 如果是,我该怎么办? (或者,如果不是,最接近的替代方案是什么?)

Java:如何计算没有。 文件中的行?

可能重复: Java中文件中的行数 我需要计算通过命令行参数传递给java的txt文件的行数。 我知道如何从文件中读取,但我在完成剩下的工作时遇到了麻烦。 任何帮助,将不胜感激。 这是我到目前为止: import java.util.*; import java.io.*; public class LineCounter { public static void main (String [] args) throws IOException{ Scanner file = new Scanner(new File(“myFlile.txt”)); int count = 0; while(file.hasNext()){ boolean s = file.hasNext(); int count = file.nextInt(); } System.out.println(count); } }