您好,登錄后才能下訂單哦!
//讀取圖片到字節(jié)數(shù)組(內(nèi)存),然后返回寫入的字節(jié)數(shù)組
//讀取返回的字節(jié)數(shù)組,寫入到文件
public class test{
public static void main(String[]args)
{
String path="C:/Users/10853/eclipse-workspace/hell/linux學習路線.png";
byte[] data=toByteArray(path); //圖片不能直接到字節(jié)數(shù)組中,is.read()返回的是int類型的大小,new String是解碼
//需要寫入字節(jié)數(shù)組(內(nèi)存)再通過方法返回到字節(jié)數(shù)組里
//圖片不能直接轉(zhuǎn)換成字符串
toFile(data,"D:/d/to.txt");
}
//圖片到字節(jié)數(shù)組中
public static byte[] toByteArray(String path)
{
File f =new File(path);
byte[] last=null;
InputStream is =null; //選用字節(jié)流是因為,字符流只能讀純字符文本
ByteArrayOutputStream bos=null;
try {
is =new FileInputStream(f);
bos =new ByteArrayOutputStream();
byte[] flush=new byte[1024*10];
int len=-1;
try {
while((len=is.read(flush))!=-1)
{
bos.write(flush,0,len); //寫出到字節(jié)數(shù)組中
bos.flush();
}
return bos.toByteArray(); //不返回字節(jié)數(shù)組的話,不知道讀取哪段內(nèi)存
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}catch(FileNotFoundException e)
{
e.printStackTrace();
}finally
{
try {
if(null!=is)
{
is.close();
}
}catch(IOException e)
{
e.printStackTrace();
}
}
return null;
}
//字節(jié)數(shù)組寫出到文件
//字節(jié)數(shù)組讀取到程序中 ByteArrayInputStream
//程序?qū)懗龅轿募?FileOutputStream
public static void toFile(byte[] src,String path)
{
InputStream is=null;
OutputStream os=null;
try
{
is=new ByteArrayInputStream(src); ///讀取字節(jié)數(shù)組要用字節(jié)數(shù)組讀取流,不能用FileInputStream文件讀取流
os=new FileOutputStream(path);
byte[] flush =new byte[1024*10];
int len=-1;
while((len=is.read(flush))!=-1)
{
os.write(flush,0,len);
os.flush();
}
}catch(IOException e)
{
e.printStackTrace();
}finally {
try {
if(null!=os)
{
os.close();
}
}catch(IOException e)
{
e.printStackTrace();
}
}
}
}
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。