Tag: 字节

如何将字符串转换为字节和后退

为了转换字符串,我将其转换为一个字节,如下所示: byte[] nameByteArray = cityName.getBytes(); 要转换回来,我做了: String retrievedString = new String(nameByteArray); 这显然不起作用。 我怎么把它转换回去?

Java – 将人类可读大小转换为字节

我发现了很多关于将原始字节信息转换为人类可读格式的信息,但我需要做相反的事情,即将字符串“1.6 GB”转换为长值1717990000.是否内置/良好 – 这样做的定义方式,还是我几乎不得不自己动手? [编辑]:这是我的第一次刺… static class ByteFormat extends NumberFormat { @Override public StringBuffer format(double arg0, StringBuffer arg1, FieldPosition arg2) { // TODO Auto-generated method stub return null; } @Override public StringBuffer format(long arg0, StringBuffer arg1, FieldPosition arg2) { // TODO Auto-generated method stub return null; } @Override public Number parse(String arg0, ParsePosition arg1) { […]

如何有效地将字节数组转换为字符串

我有一个151字节的字节数组,通常是一个记录,记录需要插入到oracle数据库中。 在151字节的数组范围内,从0到1是记录id,2到3是引用id,4到9是日期值。 字节数组中的以下数据是日期值。 我想将其转换为字符串 byte[] b= {48,48,49,48,48,52}; // when converted to string it becomes 10042. new String(b); // current approach 有没有办法有效地将某些范围的字节数组( Arrays.copyOfRange(b,0,5) )转换为字符串。

将无符号字节转换为有符号字节

有没有一种简单而优雅的方法可以将无符号字节值转换为java中的有符号字节值? 例如,如果我只有int值240(二进制(24位+ 11110000)= 32位),我如何获得此int的有符号值?

独立的字节码validation器

在我的字节码检测项目中,我经常在VerifyErrors上偶然发现。 但是,默认的java Verifier几乎没有提供关于哪条指令导致错误的信息(它只给出了方法和一条小消息)。 是否有任何独立的字节码validation器,它提供了一些更高级的帮助来定位错误,至少是精确的指令位置? 谢谢。

与0xff进行逐位AND运算很重要?

在这段代码中,与0xff进行逐位AND运算实际上是否意味着返回相同的值? byte[] packet = reader.readPacket(); short sh; sh = packet[1]; sh &= 0xFF; System.out.print(sh+” “); 奇怪的是,如果不包括ANDing,我得到-1,但是当包含255时可以解释原因吗? 正如我所看到的,0xff只是1111 1111.不是吗?

为什么byte不会在java中占用0xff?

为什么java编译器不允许我将0xff放入一个byte , 0xff是8位长,这只是byte数据类型的大小。 有人可以解释为什么1有效,为什么有2无效? class a { public static void main(String[] args) { // 1 :: results in error byte a = 0xff; System.out.printf(“%x\n”,a); //2 :: works fine byte a = (int)0xff System.out.printf(“%x\n”,a); } } 编辑我读了答案声称0xff是255,怎么回事? 是不是1111 1111 ,是什么让0xff,-128或255或其他任何事情。 为什么它不仅仅将它视为1111 1111而不是该字节的8位为1。

将字节提升为int或long

如果我有一个字节值00101011并且我想将其表示为int值我有: 00000000000000000000000000101011 ,对我来说似乎很清楚。 我有字节值11010100问题,其中int由11111111111111111111111111010100表示。 我不知道它来自哪里。 有人能解释我将扩展字节值转换为int的想法吗?

JSP下载 – application / octet-stream

我在JSP中有一个页面列出了一些可以由用户下载的文件。 Thoses文件不在本地服务器上,它们位于远程文件服务器上。 当用户单击下载文件时,Web服务器通过TCP连接到文件服务器。 Web服务器下载文件并为客户端创建HTTP响应。 这是我的代码: <% out.clearBuffer(); String nomFichier = request.getParameter("fichier"); String adresseStockage = request.getParameter("adresseStockage"); ClientTCPStockage clientStockage = new ClientTCPStockage(InetAddress.getByName(adresseStockage), 2004); byte donneeFichier[] = clientStockage.getDonneesFichier(nomFichier); response.setHeader("Content-Disposition", "attachment;filename=\"" + nomFichier + "\""); response.setHeader("Content-Type", "application/octet-stream;"); response.setHeader("Accept-Ranges", "bytes"); response.setHeader("Content-Length", String.valueOf(donneeFichier.length)); for(int i = 0; i 这对于基于文本的文件非常好,例如.csv或普通.txt,但它不适用于其他类型,如.mp3或.jpeg ..这些文件最终会损坏。 我认为我的编码存在问题,但我无法找到… 这是HTTP标头响应: HTTP/1.x 200 OK Server: Apache-Coyote/1.1 Content-Disposition: attachment;filename=”test.mp3″ Accept-Ranges: bytes […]

在Java中将字节转换为二进制

我试图将字节值转换为二进制数据传输。 基本上,我在二进制(“10101100”)中以字节数组的forms发送类似“AC”的值,其中“10101100”是单字节。 我希望能够接收此字节并将其转换回“10101100”。 截至目前,我根本没有成功,也不知道从哪里开始。 任何帮助都会很棒。 编辑 :抱歉所有的困惑我没有意识到我忘了添加具体的细节。 基本上我需要使用字节数组通过套接字连接发送二进制值。 我可以这样做,但我不知道如何转换值并使它们正确显示。 这是一个例子: 我需要发送hex值ACDE48并能够将其解释回来。 根据文档,我必须通过以下方式将其转换为二进制:byte [] b = {10101100,11011110,01001000},其中数组中的每个位置可以包含2个值。 然后,我需要在发送和接收后将这些值转换回来。 我不知道该怎么做。