9.文件中有一组整数,要求排序后输出到另一个文件中
package com.xyd.java.lesson12;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
public class ReaderAndWriterDemo {
  public static void main(String[] args) {
       File source = new File("d:\\FileDemo1.java"); 
           File target = new File("e:\\",source.getName());
        readWrite(source,target); 
   }
      private static void readWrite(File source, File target) {
  int a[] =new int[8];
  int i=0;
try {
Reader in = new FileReader(source); 
BufferedReader bin = new BufferedReader(in);  
         Writer out = new FileWriter(target);
BufferedWriter bout = new BufferedWriter(out);
int data = bin.read();
while(data != -1) {
if(data!=32)
{a[i]=data;
  i++;
               }
data = bin.read();
  }
    bin.close();
    sort(a); 
    for(int j=0;j<a.length;j++){
    bout.write(a[j]);
    bout.write(",");
    }
       bout.close();
  } catch (Exception e) {
e.printStackTrace();
}
      }
      public static int[] sort(int [] a){
         for (int i=a.length-1; i>=1;i--) {
for(int j=0;j<=i-1;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
         return a;
        }
       }
出现了3个问题
1、原文件里的数为 2 9 8 5 10 9 7中间用空格隔开 但生成的文件里却是0,1,2,5,7,8,9,9即两位及两位以上的数字就会分开,怎么能让他们完整的输出啊?
2、感觉定义数组时数组长度不知咋确定,上面程序中那样感觉不太合理,长度太长的话前面就先打印一串逗号,太短就出现数组越界异常,有没办法能把原文件中的长度直接得到再创建数组?
3、如果原文件中数字间不是用空格的话这程序的话就不适用了?咋办??