程序员

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

2017-01-22  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读