黑马程序员技术交流社区
标题:
将字符串转换成二进制然后输出的问题
[打印本页]
作者:
孟浩然
时间:
2012-6-4 12:03
标题:
将字符串转换成二进制然后输出的问题
写了个程序,可以将指定文件的内容转换成二进制,然后输出到一个文件中去,源码:
import java.io.*;
class StrToBinary{
public static void main(String args[]){
BufferedReader bufr=null;
BufferedWriter bufw=null;
try{
bufr=new BufferedReader(new FileReader("Tmax.java"));
bufw=new BufferedWriter(new FileWriter("Tmax.txt"));
String line=null;
while((line=bufr.readLine())!=null){
//调用strToBinary方法
String result=strToBinary(line);
bufw.write(result);
bufw.newLine();
//System.out.println(result);
}
}catch(IOException e){
throw new RuntimeException("读写失败");
}
finally{
try{
if(bufr!=null) bufr.close();
}catch(IOException e){
throw new RuntimeException("读取流关闭失败");
}
try{
if(bufw!=null) bufw.close();
}catch(IOException e){
throw new RuntimeException("写入流关闭失败");
}
}
}
//定义字符串转换成二进制方法
static String strToBinary(String str){
char[] strChar=str.toCharArray();
String result=null;
for(int i=0;i<strChar.length;i++){
result +=Integer.toBinaryString(strChar[i]);
}
return result;
}
}
复制代码
我读取了一个.java文件,于是问题出来了,如果在那个java文件代码前面加入一些空格,就会报告异常:
--------------------Configuration: <Default>--------------------
Exception in thread "main" java.lang.NullPointerException
at java.io.Writer.write(Writer.java:140)
at StrToBinary.main(StrToBinary.java:21)
Process completed.
复制代码
如果把那个java文件里的开始的空格去掉,运行后打印出来的是二进制文件,但是每个二进制字符之前都会有个null,不知为何故
null1110000111010111000101101100110100111000111000001100011110110011000011110011111001110000010101001101101110000111110001111011
null1001
复制代码
作者:
孟浩然
时间:
2012-6-4 17:22
这个问题有人指点一下吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2