大家好,我有一个文件是data.txt,时面是数字,格式如下:
11 22 33 444
11 22 33 44
11 233 433 44
11 233 44 545
这只是一个假设,我的数字都是双精度的,而且非常大,有20000*20000个,我想先把它们分成两个20000*10000的小一点的文件,用上面的例子就是把这个组数字的文件分成
11 22 
11 22
11 233
11 333

33 444
33 44
433 44
44  545
代码如下,不知道什么原因,现在我的程序只能把数字写入第一个文件s1;但是程序中我是加了if判断的,怎么没有起作用呢?谢谢
下面只是
/**
 * 
 */import java.io.*;/**
 * @author  *
 */
public class Depose {
public static void doDepose(String s){
  
   //int half=500;
try{
FileReader re=new FileReader(s);
BufferedReader buffer=new BufferedReader(re);
PrintWriter out1=new PrintWriter(new FileWriter("s1.txt"));
PrintWriter out2=new PrintWriter(new FileWriter("s2.txt"));
//PrintWriter out3=new PrintWriter(new FileWriter("s3.txt"));
//PrintWriter out4=new PrintWriter(new FileWriter("s4.txt"));
String temp;
while((temp=buffer.readLine())!=null){

//String tline=buffer.readLine();
String tarray[]=temp.split(" ");
int size=tarray.length;
int half=(int)size/2;
for(int m=0;m<size;m++){
if(m<=half){out1.print(tarray[m]+" ");}
if(m>half){ out2.print(tarray[m]+" ");}

}
out1.print("\r\n");
out2.print("\r\n"); }
out1.close();
out2.close();


}catch(Exception e)
{e.printStackTrace();}




} /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
     doDepose("data.txt");
}}

解决方案 »

  1.   

    代码在我这里运行很好,我调整了几个地方,你在你那里运行看看import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.PrintWriter;public class Depose {
      public static void doDepose(String s) {
        // int half=500;
        try {
          FileReader re = new FileReader(s);
          BufferedReader buffer = new BufferedReader(re);
          PrintWriter out1 = new PrintWriter(new FileWriter("s1.txt"));
          PrintWriter out2 = new PrintWriter(new FileWriter("s2.txt"));
          // PrintWriter out3=new PrintWriter(new FileWriter("s3.txt"));
          // PrintWriter out4=new PrintWriter(new FileWriter("s4.txt"));
          String temp;
          while ((temp = buffer.readLine()) != null) {
            // String tline=buffer.readLine();
            String tarray[] = temp.split("[\\s]+");
            int size = tarray.length;
            int half = (int) size / 2;
            for (int m = 0; m < size; m++) {
              if (m <= half) {
                out1.print(tarray[m] + " ");
              }
              if (m > half) {
                out2.print(tarray[m] + " ");
              }
            }
            out1.print("\r\n");
            out2.print("\r\n");
            out1.flush();
            out2.flush();
          }
          out1.close();
          out2.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }  /**
       * @param args
       */
      public static void main(String[] args) {
        // TODO Auto-generated method stub
        doDepose("data.txt");
      }
    }