자바 파일 을 byte 바이트 로 변환 합 니 다.
최근 안 드 로 이 드 를 할 때 동료 가 하나의 URL 로 그림 한 장 을 가 져 오 는 것 이 너무 느리다 고 했 습 니 다. 바이트 가 올 수 있 는 지 없 는 지 테스트 해 보 았 습 니 다. File 의 파일 을 by te [] 배열 바이트 로 바 꾸 었 습 니 다. 다음은 코드 입 니 다.
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
/**
* byte[] ,
* @author spring sky
*<br> Email:[email protected]
*<br> QQ:840950105
*
*/
public class FileToByte {
public static void main(String[] args) throws Exception {
File file = new File("d:/a.png");
byte[] b = getByte(file);
/***
*
* 10
*/
for (int i = 0; i < b.length; i++) {
System.out.print(b[i]);
if(i%10==0&&i!=0)
{
System.out.print("
");
}
}
/**
*
*/
File newFile = new File("e:/ .png");
OutputStream os = new FileOutputStream(newFile);
os.write(b); //
os.flush();
os.close();
}
/**
*
* @param file
* @return byte[]
* @throws Exception
*/
public static byte[] getByte(File file) throws Exception
{
byte[] bytes = null;
if(file!=null)
{
InputStream is = new FileInputStream(file);
int length = (int) file.length();
if(length>Integer.MAX_VALUE) // int
{
System.out.println("this file is max ");
return null;
}
bytes = new byte[length];
int offset = 0;
int numRead = 0;
while(offset<bytes.length&&(numRead=is.read(bytes,offset,bytes.length-offset))>=0)
{
offset+=numRead;
}
// file
if(offset<bytes.length)
{
System.out.println("file length is error");
return null;
}
is.close();
}
return bytes;
}
}
위의 getByte 방법 으로 바 이 트 를 얻 을 수 있 습 니 다. 그리고 제 가 바 이 트 를 파일 로 바 꾸 는 것 도 문제 가 없습니다!이러한 방식 은 주로 xml 또는 json 에 파일 을 포장 하여 전송 하 는 것 입 니 다. 그러나 저 는 개인 적 으로 서버 측 이 똑 같이 전송 흐름 을 준다 고 생각 합 니 다. 그러나 이런 방식 은 단점 이 존재 합 니 다. 예 를 들 어 파일 이 너무 크 면 바이트 가 많아 질 것 입 니 다. 그러면 클 라 이언 트 가 갑자기 어떤 이유 로 서버 에 연결 하지 못 하면 파일 전송 에 실패 할 것 입 니 다!저 는 이런 방식 을 추천 하지 않 습 니 다. 개인 적 으로 url 을 사용 하여 얻 을 수 있다 고 생각 합 니 다. 그러면 정지점 전송 기능 도 추가 하여 많은 이상 한 문 제 를 제거 할 수 있 습 니 다!이렇게 하 는 게 좋아!그리고 저 는 여러분 들 이 이런 방식 으로 클 라 이언 트 에 게 파일 을 전송 하 는 것 을 고려 하지 않 았 으 면 좋 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.