获取由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

我有一个两遍汇编程序的Java程序,目前我正在为其执行第二遍,在此期间,我需要将一个整数写入一个文件,但一些意外字符正在写入该文件,我向您保证,我尝试写入的值肯定是一个整数,请参见下文

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