본문 바로가기

programming/java, Spring, android, js

[Java] Binary to Byte File

이진비트스트림 문자열을 받아서 byte 로 만들고 파일에 쓰고 그러는 소스다.

하고나니 왜 만들었는지도 모르겠다.

 

이걸 올려두면 쓸 사람이 있을지는 모르겠다.

	private static void makeDataToFile(String fileNm, String rst, boolean isBinary) {
		try {
			if(isBinary) 
			{
				byte[] binary = new byte[rst.length()/7+1];
				int cnt = 0;
				
				DataOutputStream out = new DataOutputStream(new FileOutputStream(fileNm));
				while(rst.length() > 0) {
					if(rst.length() >= 7) {
						String data = rst.substring(0, 7);
						int b = Integer.parseInt(data, 2);
						binary[cnt++] = Byte.parseByte(b+"");
						rst = rst.substring(7);
					}else {
						int b = Integer.parseInt(rst, 2);
						binary[cnt++] = Byte.parseByte(b+"");
						rst = "";
					}
				}
				out.write(binary);
				out.flush();
				out.close();
			}
			else {
				FileWriter fout = new FileWriter(fileNm);
				fout.write(rst);
				fout.flush();
				fout.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

일반적인 파일 출력 함수를 만들어 보았다.

다른점이 하나 있다면, 입력 문자열 rst 는 isBinary 체크가 된 경우, 이진수여야 한다는 제약이 있다.

 

쓴 파일을 다시 읽어들이는 함수도 만들어 보기는 했는데 퍽이나 이쁘지도 않아서 올리지는 않으련다.

반응형