大家好,我有一个文件是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");
}}
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");
}}
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");
}
}