java 如何将二进制数据流转换成字符串并保存
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何将二进制数据流转换成字符串并保存相关的知识,希望对你有一定的参考价值。
参考技术A private static String bytesToString(String filename)String myreadline = "";
try
// 创建FileReader对象,用来读取字符流
FileReader fr = new FileReader("userinfo.txt");
// 缓冲指定文件的输入
BufferedReader br = new BufferedReader(fr);
// 定义一个String类型的变量,用来每次读取一行
while (br.ready())
// 读取一行
myreadline = myreadline + (myreadline.equals("")?"":"\n") + br.readLine();
// 在屏幕上输出
System.out.println(myreadline);
br.close();
fr.close();
catch (IOException e)
e.printStackTrace();
return myreadline;
public static void writerFile(String fileString, String filePath)
FileWriter fw;
try
fw = new FileWriter(filePath);
// 将缓冲对文件的输出
BufferedWriter bw = new BufferedWriter(fw);
bw.write(fileString);
bw.flush();
bw.close();
fw.close();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
public static void main(String[] args) throws FileNotFoundException,
Exception
// TODO Auto-generated method stub
String fileString = bytesToString("D:/workspace/TestStruts2/userinfo.txt");
writerFile(fileString,"D:/workspace/TestStruts2/test.txt");
将二进制流转换成图片文件
import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; /** * 将二进制流转换成图片文件 * * */ public class ImgErToFileUtil { /** * 将接收的字符串转换成图片保存 * @param imgStr 二进制流转换的字符串 * @param imgPath 图片的保存路径 * @param imgName 图片的名称 * @return * 1:保存正常 * 0:保存失败 */ public static int saveToImgByStr(String imgStr,String imgPath,String imgName){ try { System.out.println("===imgStr.length()====>" + imgStr.length() + "=====imgStr=====>" + imgStr); } catch (Exception e) { e.printStackTrace(); } int stateInt = 1; if(imgStr != null && imgStr.length() > 0){ try { // 将字符串转换成二进制,用于显示图片 // 将上面生成的图片格式字符串 imgStr,还原成图片显示 byte[] imgByte = hex2byte( imgStr ); InputStream in = new ByteArrayInputStream(imgByte); File file=new File(imgPath,imgName);//可以是任何图片格式.jpg,.png等 FileOutputStream fos=new FileOutputStream(file); byte[] b = new byte[1024]; int nRead = 0; while ((nRead = in.read(b)) != -1) { fos.write(b, 0, nRead); } fos.flush(); fos.close(); in.close(); } catch (Exception e) { stateInt = 0; e.printStackTrace(); } finally { } } return stateInt; } /** * 将二进制转换成图片保存 * @param imgStr 二进制流转换的字符串 * @param imgPath 图片的保存路径 * @param imgName 图片的名称 * @return * 1:保存正常 * 0:保存失败 */ public static int saveToImgByBytes(File imgFile,String imgPath,String imgName){ int stateInt = 1; if(imgFile.length() > 0){ try { File file=new File(imgPath,imgName);//可以是任何图片格式.jpg,.png等 FileOutputStream fos=new FileOutputStream(file); FileInputStream fis = new FileInputStream(imgFile); byte[] b = new byte[1024]; int nRead = 0; while ((nRead = fis.read(b)) != -1) { fos.write(b, 0, nRead); } fos.flush(); fos.close(); fis.close(); } catch (Exception e) { stateInt = 0; e.printStackTrace(); } finally { } } return stateInt; } /** * 二进制转字符串 * @param b * @return */ public static String byte2hex(byte[] b) // 二进制转字符串 { StringBuffer sb = new StringBuffer(); String stmp = ""; for (int n = 0; n < b.length; n++) { stmp = Integer.toHexString(b[n] & 0XFF); if (stmp.length() == 1) { sb.append("0" + stmp); } else { sb.append(stmp); } } return sb.toString(); } /** * 字符串转二进制 * @param str 要转换的字符串 * @return 转换后的二进制数组 */ public static byte[] hex2byte(String str) { // 字符串转二进制 if (str == null) return null; str = str.trim(); int len = str.length(); if (len == 0 || len % 2 == 1) return null; byte[] b = new byte[len / 2]; try { for (int i = 0; i < str.length(); i += 2) { b[i / 2] = (byte) Integer .decode("0X" + str.substring(i, i + 2)).intValue(); } return b; } catch (Exception e) { return null; } } } 来源:转载
以上是关于java 如何将二进制数据流转换成字符串并保存的主要内容,如果未能解决你的问题,请参考以下文章
JAVA Socket TCP InputStream输入流转换成可读的数据如何做?