做上机题,遇到有关问题

做上机题,遇到问题importjava.io.*importjava.util.*classSorts{publicstaticvoidmain(Stringargs[])thr

做上机题,遇到问题
import   java.io.*;
import   java.util.*;
class   Sorts
{
        public   static   void   main(String   args[])throws   Exception  
        {
              int   count;
              byte   b[]=new   byte[1024];
              InputStreamReader   in;
              FileWriter   out;
              BufferedReader   br;
              FileInputStream   fis;            
              FileOutputStream   fos;

              try{
                  in=new   InputStreamReader(System.in);
                  br=new   BufferedReader(in);      
                  out=new   FileWriter( "F:\\1\\Test\\3\\test.txt ");

                  System.out.println( "请输入#结束键盘输入: ");
                  String   str=br.readLine();
                  while(!str.equals( "# ")){
                        out.write(str+ "\r\n ");
                        str=br.readLine();  
                  }
                          in.close();
                          out.close();
                          br.close();  
              }catch(IOException   e){}    

                  fis=new   FileInputStream   ( "F:\\1\\Test\\3\\test.txt ");
                  fos=new   FileOutputStream( "F:\\1\\Test\\3\\test1.txt ");  

                try{
                    while((count=fis.read(b,0,1024))!=-1){      
                            int   c[]   =   new   int[20];
                            for(int   i=0;   i <20;   i++)   {
                                    if   (b[i]   !=   32   &&   b[i]   !=   13   &&   b[i]   !=   10)
                                            c[i]   =   b[i];
                            }


                        Arrays.sort(c);

                        for(int   i=0;   i <20;   i++)   {
                                fos.write(c[i]);  
                                fos.write(32);
                        }
                        }
                        fis.close();
                        fos.close();
              }catch(IOException   e){
                    System.out.println( "Error: "+e);
                }
        }
}

为什么它把12之类的2位数当作1和2来处理?排序后就不对了
比如说我输入
12   3   4   5
#
得到的结果却是:
1 2 3 4 5
我想要的结果是 :
3   4   5   12


[解决办法]
因为你读的时候是直接读的一行而处理的时候是对一个个字符处理的
[解决办法]
我虽然没有回答您的问题,但也帮您顶了下,求您给小女几分好吗?我非专业,但需要点分提问啊!

呵呵,谢谢!!
[解决办法]
汗 排序要写的这么麻烦么?
[解决办法]
首先,你并没有排序。
其次,出现“1 2 3 4 5”结果是因为:
for(int i=0; i <20; i++) {
if (b[i] != 32 && b[i] != 13 && b[i] != 10) //这个if把空格换行全过滤掉了,c数组里面结构是:12345;
c[i] = b[i];
}

for(int i=0; i <20; i++) {
fos.write(c[i]);
fos.write(32);
}
//这个输出语句是打印一个字符就打印一个空格,这样就形成了“1 2 3 4 5”
[解决办法]
当然是这样了,因为读字节的时候没一个字符是一个字节, 然后12就需要长度为2 的byte数组了。
你可以把byte数组转换成String然后解析。
或者你字节读readLine();