//文件A和B放在项目的根目录 FileReader reader = null; FileWriter writer = null; try { //读取文件A File fileA = new File("a.txt"); reader = new FileReader(fileA); char[] cbuf = new char[1024]; int num = reader.read(cbuf); //将读取到的字符数组转成字符串 String str = new String(cbuf, 0, num); //用“|”将字符串分割成字符串数组 String[] strNums = str.split("\\|"); //将字符串数组转成整型数组 int[] intNums = new int[strNums.length]; for (int i = 0; i < intNums.length; i++) { intNums[i] = Integer.parseInt(strNums[i]); } //排序 int tmp; for (int i = 0; i < intNums.length - 1; i++) { for (int j = i + 1; j < intNums.length; j++) { if (intNums[i] > intNums[j]) { tmp = intNums[i]; intNums[i] = intNums[j]; intNums[j] = tmp; } } } //生成结果字符串 String res = ""; for (int i = 0; i < intNums.length; i++) { if (i == 0) { res = "" + intNums[i]; } else { res += "|" + intNums[i]; } } //写出结果到文件B System.out.println(res); File fileB = new File("b.txt"); writer = new FileWriter(fileB); writer.write(res); writer.flush(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { reader.close(); writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
from.txt 内容:please input the following ints into file:to.txt take care,after sort |25|36|89|126|20|24|98|66|88|79| run the code,and test ....执行代码后,to.txt内容:20 24 25 36 66 79 88 89 98 126 JAVA程序代码如下:import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.Path; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import static java.nio.file.StandardOpenOption.*; import java.util.EnumSet; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.Arrays;public class Test{ public static void main(String[] args){ Path from = Paths.get(System.getProperty("user.dir")).resolve("from.txt");//can set the from path... Path to = Paths.get(System.getProperty("user.dir")).resolve("to.txt");//can set the to path from = from.toAbsolutePath(); to = to.toAbsolutePath(); try{ Files.createDirectories(from.getParent()); Files.createDirectories(to.getParent()); }catch(IOException e){ e.printStackTrace(); return; } try(BufferedReader reader = Files.newBufferedReader(from); BufferedWriter writer = Files.newBufferedWriter(to)){ String line = getResultLine(reader);
String intsStr = getIntsStr(line); //save intsStr into file:to writer.write(intsStr.toCharArray()); }catch(IOException e){ e.printStackTrace(); return; } } private static String getIntsStr(String line){ line = line.replaceAll("[|]+","|"); line = line.replaceAll("^[|]|[|]$",""); String[] strs = line.split("[|]"); int[] ints = new int[strs.length]; for(int i = 0 ; i < strs.length ; i ++){ ints[i] = Integer.valueOf(strs[i]); } Arrays.sort(ints); String result = ""; for(int i : ints){ result += i + " "; } return result; } private static String getResultLine(BufferedReader reader){ //suppost that the line matches regex '(\\|d[|])+' String resultLine; try{ while((resultLine = reader.readLine()) != null){
//文件A和B放在项目的根目录
FileReader reader = null;
FileWriter writer = null;
try
{
//读取文件A
File fileA = new File("a.txt");
reader = new FileReader(fileA);
char[] cbuf = new char[1024];
int num = reader.read(cbuf);
//将读取到的字符数组转成字符串
String str = new String(cbuf, 0, num);
//用“|”将字符串分割成字符串数组
String[] strNums = str.split("\\|");
//将字符串数组转成整型数组
int[] intNums = new int[strNums.length];
for (int i = 0; i < intNums.length; i++)
{
intNums[i] = Integer.parseInt(strNums[i]);
}
//排序
int tmp;
for (int i = 0; i < intNums.length - 1; i++)
{
for (int j = i + 1; j < intNums.length; j++)
{
if (intNums[i] > intNums[j])
{
tmp = intNums[i];
intNums[i] = intNums[j];
intNums[j] = tmp;
}
}
}
//生成结果字符串
String res = "";
for (int i = 0; i < intNums.length; i++)
{
if (i == 0)
{
res = "" + intNums[i];
}
else
{
res += "|" + intNums[i];
}
}
//写出结果到文件B
System.out.println(res);
File fileB = new File("b.txt");
writer = new FileWriter(fileB);
writer.write(res);
writer.flush();
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try
{
reader.close();
writer.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
take care,after sort
|25|36|89|126|20|24|98|66|88|79|
run the code,and test ....执行代码后,to.txt内容:20 24 25 36 66 79 88 89 98 126 JAVA程序代码如下:import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.Path;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import static java.nio.file.StandardOpenOption.*;
import java.util.EnumSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Arrays;public class Test{
public static void main(String[] args){
Path from = Paths.get(System.getProperty("user.dir")).resolve("from.txt");//can set the from path...
Path to = Paths.get(System.getProperty("user.dir")).resolve("to.txt");//can set the to path
from = from.toAbsolutePath();
to = to.toAbsolutePath();
try{
Files.createDirectories(from.getParent());
Files.createDirectories(to.getParent());
}catch(IOException e){
e.printStackTrace();
return;
} try(BufferedReader reader = Files.newBufferedReader(from);
BufferedWriter writer = Files.newBufferedWriter(to)){ String line = getResultLine(reader);
String intsStr = getIntsStr(line); //save intsStr into file:to
writer.write(intsStr.toCharArray()); }catch(IOException e){
e.printStackTrace();
return;
}
} private static String getIntsStr(String line){
line = line.replaceAll("[|]+","|");
line = line.replaceAll("^[|]|[|]$","");
String[] strs = line.split("[|]");
int[] ints = new int[strs.length];
for(int i = 0 ; i < strs.length ; i ++){
ints[i] = Integer.valueOf(strs[i]);
}
Arrays.sort(ints);
String result = "";
for(int i : ints){
result += i + " ";
}
return result;
} private static String getResultLine(BufferedReader reader){
//suppost that the line matches regex '(\\|d[|])+'
String resultLine;
try{
while((resultLine = reader.readLine()) != null){
if(resultLine.matches("^(\\d|[|])+$")){
return resultLine;
}
}
}catch(IOException e){
e.printStackTrace();
System.exit(1);
}
return null;
}
}