Java:对文件A.txt内部数据逐行排序,并写入B.txt

来源:互联网 发布:知乎怎么收藏文章 编辑:程序博客网 时间:2024/06/05 20:05

1.执行结果要求如图:

这里写图片描述
这里写图片描述

2.代码:

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import java.util.List;import java.util.Vector;public class ReadFile {    public static void main(String[] args) {        File file = new File("test.txt");        if (file.exists()) {            try {                FileInputStream fis = new FileInputStream(file);                InputStreamReader isr = new InputStreamReader(fis, "UTF-8");                BufferedReader br = new BufferedReader(isr);                File newfile = new File("sort_test.txt"); // 如果文件不存在下一步会创建出来                FileOutputStream fos = new FileOutputStream(newfile);                OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");                BufferedWriter bw = new BufferedWriter(osw);                String str;                String[] line;                str = br.readLine();                int temp;                while (str != null) {                    line = str.split("\\|");                    int[] intArray = new int[line.length];                    for (int i = 0; i < line.length; i++) {                        intArray[i] = Integer.parseInt(line[i]);                    }                    for (int m = 0; m < intArray.length - 1; m++) {                        for (int n = 0; n < intArray.length - m - 1; n++) {                            if (intArray[n] > intArray[n + 1]) {                                temp = intArray[n];                                intArray[n] = intArray[n + 1];                                intArray[n + 1] = temp;                            }                        }                    }                    List<String> lists = new Vector<String>();                    for (int j = 0; j < intArray.length; j++) {                        lists.add(String.valueOf(intArray[j]));                    }                    for (int j = 0; j < lists.size(); j++) {                        bw.write("|" + lists.get(j));                    }                    bw.write("\n");                    str = br.readLine();                }                br.close();                isr.close();                fis.close();                bw.close();                osw.close();                fos.close();            } catch (FileNotFoundException e) {                e.printStackTrace();            } catch (UnsupportedEncodingException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }        }    }}
1 0
原创粉丝点击