美文网首页程序员
IO流——文件中读取数字并排序输出到另一个文件中

IO流——文件中读取数字并排序输出到另一个文件中

作者: 扒块腹肌 | 来源:发表于2017-01-22 21:08 被阅读626次

    在一个文件中写入10个数字。使用文件输入流将这10个数读到内存中,然后进行排序,并将排好序的数字输出到另一个文件中

    原文本:

    排序输出文本.png

    程序如下

    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    /*整体思路;
     * 1.字符流读写文本数据
     * 2.构造字符串缓冲区接收字符串
     * 3.正则表达式 用空格拆分读取到的字符串
     * 4.冒泡排序
    */
    
    /**
     * @author Administrator
     *
     */
    public class Java_4
    {
        public static void main(String[] args)
        {
            BufferedReader readNumber = null;
            FileWriter writeNumber = null;
            String string = null;
            StringBuffer stringBuffer = null;
            String[] str = null;
            try
            {
                readNumber = new BufferedReader(new FileReader("1.txt"));
                writeNumber = new FileWriter("2.txt");
                stringBuffer = new StringBuffer();// 构造字符串缓冲区
    
                // 读入文件内容
                while ((string = readNumber.readLine()) != null)
                {
                    System.out.println("文件内容: " + string);
                    // 根据空格拆分此字符串
                    str = string.split(" ");
                    for (int k = 0; k < str.length - 1; k++)
                    {// 遍历字符串数组 转换为int数组 并比较相邻数的大小
                        for (int j = k + 1; j < str.length; j++)
                        {
                            // 创建 Integer对象表示 str[i]所指示的int值 ,大数放左边
                            if (Integer.valueOf(str[k]) < Integer.valueOf(str[j]))
                            {
                                String temp = str[k];
                                str[k] = str[j];
                                str[j] = temp;
                            }
                        }
                    }
                    // 排序完成,逐个追加到StringBuffer序列中
                    for (int k = 0; k < str.length; k++)
                    {
                        stringBuffer.append(str[k] + " ");
                    }
                    // 返回字符串本身,写入文件 
                    writeNumber.write(stringBuffer.toString());
                    writeNumber.flush();
                }
            }
            catch (FileNotFoundException e)
            {
                e.printStackTrace();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            finally
            {
                if (readNumber != null)
                {
                    try
                    {
                        readNumber.close();
                    }
                    catch (IOException e)
                    {
                        e.printStackTrace();
                    }
                }
                if (writeNumber != null)
                {
                    try
                    {
                        writeNumber.close();
                    }
                    catch (IOException e)
                    {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    
    
    

    输出文本:

    排序输出文本.png

    相关文章

      网友评论

        本文标题:IO流——文件中读取数字并排序输出到另一个文件中

        本文链接:https://www.haomeiwen.com/subject/bymobttx.html