「java流转为二进制」java接收二进制流

博主:adminadmin 2022-11-23 08:51:06 117

今天给各位分享java流转为二进制的知识,其中也会对java接收二进制流进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

跪求“java中二进制怎么表示”

java中二进制的表示:

1、Java中定义两个数,然后分别打印出它们的二进制表示(例如7和-7):

System.out.println("Java二进制7: "+Integer.toBinaryString(7));

System.out.println("Java二进制-7: "+Integer.toBinaryString(-7));

输出:

Java二进制7: 111

Java二进制-7: 11111111111111111111111111111001

7的二进制就是111

-7转化二进制的过程:

(1)把-7转化成7,二进制是 111

(2)Java中对于不满32位的int二进制自动补齐,所以变成了 (29个0)111

(3)然后取反  (29个1)000

(4)然后加1 (29个1)001

扩展资料:

c语言中二进制的转换:

用函数转换itoa(值,数组名,进制)

#includestdio.h

#includestdlib.h

void main()

{

char str[8];

int i=8;

itoa(i,str,2);

printf("%s",str);

}

参考资料:

java二进制——百度百科

java里怎样把文件转换成二进制

转换文件成为二进制数据并保存的Java代码:

取出数据并还原文件到本地的java代码:

[java] view plain copy//读取数据库二进制文件

public void readerJpg() throws SQLException

{

connection=connectionManager.getconn();//自己连接自己的数据库

String sqlString="select images from save_image where id=4";//从数据库中读出要还原文件的二进制码,这里我读的是自己的数据库id为4的文件

File file=new File("E:\\1.jpg");//本地生成的文件

if(!file.exists())

{

try {

file.createNewFile();

} catch (Exception e) {

e.printStackTrace();

}

}

try {

byte[] Buffer = new byte[4096*5];

statement=connection.prepareStatement(sqlString);

resultSet = statement.executeQuery();

if(resultSet.next())

{

FileOutputStream outputStream = new FileOutputStream(file);

InputStream iStream = resultSet.getBinaryStream("images");//去字段用getBinaryStream()

int size=0;

while((size=iStream.read(Buffer))!=-1)

{

System.out.println(size);

outputStream.write(Buffer,0,size);

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

Java中如何把图片转换成二进制流

Java中将图片转为二进制流只需要使用FileImageInputStream取得图片文件,然后使用ByteArrayOutputStream 写入到二进制流中即可,下面是详细代码:

  //图片到byte数组

  public byte[] image2byte(String path){

    byte[] data = null;

    FileImageInputStream input = null;

    try {

      input = new FileImageInputStream(new File(path));

      ByteArrayOutputStream output = new ByteArrayOutputStream();

      byte[] buf = new byte[1024];

      int numBytesRead = 0;

      while ((numBytesRead = input.read(buf)) != -1) {

      output.write(buf, 0, numBytesRead);

      }

      data = output.toByteArray();

      output.close();

      input.close();

    }

    catch (FileNotFoundException ex1) {

      ex1.printStackTrace();

    }

    catch (IOException ex1) {

      ex1.printStackTrace();

    }

    return data;

  }

另外,如果需要将byte[]存回图片或转为String,则:

  //byte数组到图片

  public void byte2image(byte[] data,String path){

    if(data.length3||path.equals("")) return;

    try{

    FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));

    imageOutput.write(data, 0, data.length);

    imageOutput.close();

    System.out.println("Make Picture success,Please find image in " + path);

    } catch(Exception ex) {

      System.out.println("Exception: " + ex);

      ex.printStackTrace();

    }

  }

  //byte数组到16进制字符串

  public String byte2string(byte[] data){

    if(data==null||data.length=1) return "0x";

    if(data.length200000) return "0x";

    StringBuffer sb = new StringBuffer();

    int buf[] = new int[data.length];

    //byte数组转化成十进制

    for(int k=0;kdata.length;k++){

      buf[k] = data[k]0?(data[k]+256):(data[k]);

    }

    //十进制转化成十六进制

    for(int k=0;kbuf.length;k++){

      if(buf[k]16) sb.append("0"+Integer.toHexString(buf[k]));

      else sb.append(Integer.toHexString(buf[k]));

    }

    return "0x"+sb.toString().toUpperCase();

  }

关于java流转为二进制和java接收二进制流的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。