获取由Java程序而不是整数写入文本文件的意外字符
我有一个两遍汇编程序的Java程序,目前我正在为其执行第二遍,在此期间,我需要将一个整数写入一个文件,但一些意外字符正在写入该文件,我向您保证,我尝试写入的值肯定是一个整数,请参见下文获取由Java程序而不是整数写入文本文件的意外字符,java,file-io,Java,File Io,我有一个两遍汇编程序的Java程序,目前我正在为其执行第二遍,在此期间,我需要将一个整数写入一个文件,但一些意外字符正在写入该文件,我向您保证,我尝试写入的值肯定是一个整数,请参见下文 Symbol Address : 231 Symbol Address : 237 Symbol Address : 237 Symbol Address : 236 Symbol Address : 210 Symbol Address : 210 Symbol Address : 236 Symbol Add
Symbol Address : 231
Symbol Address : 237
Symbol Address : 237
Symbol Address : 236
Symbol Address : 210
Symbol Address : 210
Symbol Address : 236
Symbol Address : 236
符号地址
:编号
,此编号
是我试图通过以下代码写入文件的内容
public String PassTwo() throws Exception{
String source_inter_file = "pass_one_output.txt";
String object_file = "object_code.txt";
FileReader file_rd = new FileReader(source_inter_file);
BufferedReader buf_read = new BufferedReader(file_rd);
FileWriter file_wrte = new FileWriter(object_file);
BufferedWriter buf_wrte = new BufferedWriter(file_wrte);
String CurrSourceLine = "";
if(file_rd==null) return "Error : Passone output file not found";
while((CurrSourceLine=buf_read.readLine())!=null){
String token[] = CurrSourceLine.split("[ \t]+");
if(token[0].length()==0){
for(int i =0;i<3;i++){
file_wrte.write(" - ");
}
file_wrte.write('\n');
}else{
file_wrte.write(token[0]+" ");
file_wrte.write(token[2]+" ");
if(token.length==6 && token[4].equals("S")){
System.out.println("Symbol Address : "+Symboltable[Integer.parseInt(token[5])].address);
file_wrte.write(Symboltable[Integer.parseInt(token[5])].address); // Error must be here
}
file_wrte.write('\n');
}
}
file_wrte.close();
file_rd.close();
buf_read.close();
return "Object code succesfully genrated";
}
如果使用
文件编写(97)代码>它将实际数字写入文件。在文本编辑器97中打开文件时,ACII值为字符“a”
如果要将97作为字符串写入文件,请使用file_wrte.write(string.valueOf(97))
这将57 55写入文件,该文件在ASCII中表示97
字符串
尝试:
file_wrte.write(String.valueOf(Symboltable[Integer.parseInt(token[5])].address))代码>
您已经在这里执行类似的操作了file_wrte.write(令牌[0]+”)代码>
这里运算符+
重载
如果使用文件编写(97),编译器将String+object
转换为String.concat(object.toString())
代码>它将实际数字写入文件。在文本编辑器97中打开文件时,ACII值为字符“a”
如果要将97作为字符串写入文件,请使用file_wrte.write(string.valueOf(97))
这将57 55写入文件,该文件在ASCII中表示97
字符串
尝试:
file_wrte.write(String.valueOf(Symboltable[Integer.parseInt(token[5])].address))代码>
您已经在这里执行类似的操作了file_wrte.write(令牌[0]+”)代码>
这里运算符+
重载
编译器将String+object
转换为String.concat(object.toString())
向我们展示Symboltable
@DorianGray的内容我的错误已经解决,Onkar Ruikar有答案。向我们展示Symboltable
的内容@DorianGray我的错误已经解决,Onkar Ruikar有答案。它成功了,我可以问一下之前的方法有什么问题吗?在理解Java文件IO时,我肯定错过了更深入的细节
没有引起任何问题,那么这一个为什么会引起任何问题呢?感谢您的时间,我理解了这个问题。它起作用了,我可以问您早期的方法有什么问题吗?我肯定错过了理解Java文件IO的更深层次的细节?File_wrte.write(token[0]+“”)代码>没有引起任何问题,那么为什么这一个会引起问题呢?感谢您的时间,我理解了问题。
- - -
200 1 ç
201 3 í
202 7 í
203 8
204 7
205 5
206 5
207 5 ì
208 4
209 6 Ò
210 10 Ò
210 10 ì
231 0
234 5
235 1 ì
236 1
237 0
239 2