【我在乐字节学习的第五天(Java)】教程文章相关的互联网学习教程文章

java-是否有更快的方法将数据转换为字节,然后再转换回其原始形式?【代码】

我正在使用仅将消息作为字节的队列服务,因此我需要将数据快速转换为格式,然后在从队列接收工作时将其恢复为原始格式.我的数据格式是INT,DOUBLE和INT [],这是我一开始的方法//to convert to string String[] message = { Integer.toString(number), String.valueOf(double), Arrays.toString(my_list) }; message.asString; //to convert back String message_without_brackets = message.replace("[", "" ).replace("]", ""); Stri...

java-.catchall是否用于在smali中指示Dalvik字节码的finally子句?

我注意到,当Java代码中存在finally子句时,总是会生成.catchall来标识finally块或使用.catchall标签对其进行内联,但是我没有找到有关是否存在这种情况的在线信息.解释,有人知道吗?解决方法:是的,finally块是可能会生成.catchall的一种情况.但是,它也可以用于其他用途.例如,它也可以在同步方法的情况下生成,以确保释放锁定. 捕获所有处理程序记录在dex-format规范中.具体来说,在code_item中包含的encode_catch_handler项中. 同样相关...

java-FileInputStream读取直到文件的最后128个字节【代码】

我正在尝试从文件(签名)读取最后128个字节,然后尝试读取直到这些字节,但是第一部分(读取最后128个字节)返回ArrayIndexOutOfBoundsException:byte[] signature = new byte[128];FileInputStream sigFis = new FileInputStream(f);sigFis.read(signature, (int)f.length()-128, 128);sigFis.close();然后最后一部分似乎也不起作用,我使用的是逐渐增加的偏移量:CipherInputStream cis = new CipherInputStream(fis, c);FileOutputSt...

java-将HttpResponse转换为字节数组【代码】

我有HttpResponse response = httpclient.execute(httpget);我的方法可以通过设备和PC上的套接字传输byte [],那么如何将HttpResponse转换为byte []而不是转换回HttpResponse?解决方法:这不简单. 如果您只是想要响应的主体,则可以执行此操作以获取响应ByteArrayOutputStream baos = new ByteArrayOutputStream();response.getEntity().writeTo(baos);byte[] bytes = baos.getBytes();然后可以将内容添加到另一个HttpResponse对象,如...

java-ObjectOutputStream文件中的这两个额外字节是什么?【代码】

我在处理之前提出的question时遇到了这个问题. 这可能是特定于ObjectInputStream的,而不是通常的二进制读取,因此标题可能会引起误解. 基本上,那里的问题是这样的:作者已将字符串的哈希图序列化为双精度.哈希图中每个条目的作者的custom serialization format非常简单int n // length of string key as a 4-byte integer byte[n] key // a string of length n double value // the value associated with the key现在由于某...

计算为Java代码执行的字节代码的最佳方法

我试图获取各种Java程序的时序数据.然后,我必须根据此计时数据执行一些回归分析.这是我用来获取时序数据的两种方法: > System.currentTimeMillis():最初使用此方法,但是当同一程序多次运行时,我希望定时数据保持恒定次.在这种情况下,变化很大.当两个实例相同的代码并行执行,变化更大.所以我放弃了这个,开始寻找一些探查器.热点JVM中的-XX countBytecodes标志:由于计时数据的差异很大,因此我想到了在执行该代码时测量所执行字节代...

如何在Java中将一个字符串或多个字符串转换为字节数组中的不同范围?【代码】

我为名称,用户ID,电子邮件等字段设置了一组字符串,这些字符串需要放入一定大小(1024字节)的byte []数组中. 我很想找到一种方法/函数,使我可以像下面这样简单地使用索引变量bufferPosition:byteArray[bufferPosition] += name += userID += email; bufferPosition += name.length() += userID.length() += email.length();到目前为止,我发现的所有方法都是直接将字符串转换为字节数组的方法,以及解决此问题的一些看似乏味的方法(即...

java-将字节数组写入UTF8编码的文件【代码】

给定一个采用UTF-8编码的字节数组(作为base64 decoding of a String的结果)-请问以UTF-8编码将其写入文件的正确方法是什么? 以下源代码(逐字节写入数组)是否正确?OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(tmpFile), Charset.forName("UTF-8")); for (byte b: buffer)osw.write(b); osw.close();解决方法:不要使用作家.只需使用OutputStream.使用try-with-resource的完整解决方案如下所示:try (Fi...

java-如何检查字节数组是.emf还是.wmf格式【代码】

我可以使用以下Java代码检查字节数组是否为图元文件图像(如wmf,emf)private boolean isMetaFileFormat(byte[] pictureData) {BufferedImage image = null;try {image = ImageIO.read(new ByteArrayInputStream(pictureData));if(image != null)return false; } catch (Exception e){ }return true; }但是如何具体检查它是emf还是wmf图像? 提前致谢…解决方法:使用Java Mime Magic Library轻松而又通用. DownloadMagicMa...

Java文件传输客户端未读取所有字节【代码】

这个问题已经在这里有了答案: > Java multiple file transfer over socket 2个我有一个文件发送者和接收者.在互联网上找到的10多个帖子中,这是通过Java中的套接字发送文件的正确方法.看看下面的代码片段. 发件人:OutputStream bos = clientSocket.getOutputStream(); FileInputStream fis = new FileInputStream(sendingFile); BufferedInputStream bis = new Buffere...

Java中字节之间的减法/差异【代码】

我试图从另一个字节中减去一个字节,同时确保没有溢出发生,但是得到了意外的结果. 我的情况是我有一个字节的黑白图像,我想减去背景.因此,我需要使用字节并防止溢出的发生.从其他图像中减去背景图像时,我大概在字节的有符号性方面遇到一些困难. Data2是背景数组,而data1是另一个图像. 在下面的代码中,我希望从data1数组中减去data2数组.但是,当我确定应该有较高的值时,我会得到较低的值.for (int i = 0; i < data1.length; i++) {if ...

java-当我压缩文件时,其抛出异常为“过长(> 100字节)TarArchiveOutputStream”【代码】

当我压缩文件时,其抛出异常为“太长(> 100字节)TarArchiveOutputStream”.请指导我插入setLongFileMode(TarOutputStream.LONGFILE_GNU);在这个程序中.private static void zipFilesRecursively(File baseDir, File source,TarArchiveOutputStream out) throws IOException {if (source.isFile()) {System.out.println("Adding File: "+ baseDir.toURI().relativize(source.toURI()).getPath());FileInputStream fi = new FileInput...

如何使用Java逐步解码大的多字节字符串文件?【代码】

我有一个程序可能需要处理可能包含多字节编码的大文件.我当前执行此操作的代码存在一个问题,即创建一个存储整个文件的内存结构,如果文件很大,可能会导致内存不足错误:Charset charset = Charset.forName( "UTF-8" ); CharsetDecoder decoder = charset.newDecoder(); FileInputStream fis = new FileInputStream( file ); FileChannel fc = fis.getChannel(); int lenFile = (int)fc.size(); MappedByteBuffer bufferFile = fc.ma...

java-将给定值与文件的第一个字节进行比较【代码】

这个问题已经在这里有了答案: > convert little Endian file into big Endian 6个我试图了解一些基础知识,我试图使用Java读取二进制文件,在这种情况下,这是无关紧要的,但我认为可能会对这种方法有所帮助.因此,我知道文件的前四个字节的值为0x9AA2D903.但是,当我阅读时,它们具有“相反”的顺序,例如:03 D9 A2 9A(03-第一个字节,D9-第二个字节,依此类推). 为了比较0x9AA...

乐字节-Java8核心特性实战之函数式接口

什么时候可以使用Lambda?通常Lambda表达式是用在函数式接口上使用的。从Java8开始引入了函数式接口,其说明比较简单:函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。 java8引入@FunctionalInterface 注解声明该接口是一个函数式接口。 语法抽象方法有且仅有一个接口使用@FunctionalInterface 注解进行标注接口中可以存在默认方法和静态方法实现如下形式: /** * 定义函数式接口...