- 今天在对文件内数据进行排序时,出了点问题,我的做法是这样的:
- 首先从键盘输入一行数数字,用BufferedReader的readline方法获得,然后用FileWriter写入到文件中。跟着用FileReader的read方法,将文件内的数据读入到自己定义的char数组中,最后再用数组的排序函数,但最终输出不对。以下是源代码:
- import java.io.*;
- import java.util.*;public class SortNum {public SortNum() {
- // TODO Auto-generated constructor stub
- }/**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- char ch[] = new char[10];
- try {
- File file = new File("c:/save.dat");
- BufferedReader br = new BufferedReader(new InputStreamReader(
- System.in));
- FileReader fr = new FileReader(file);
- FileWriter fw = new FileWriter(file);
- String s = br.readLine();
- fw.write(s);
- fr.read(ch);
- Arrays.sort(ch);
- for (int i = 0; i < ch.length; i++) {
- System.out.print(ch[i] + " ");
- }
- fw.close();
- fr.close();
- br.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }}
- //可以说输入是没问题的,主要是利用数组得到那一行输入数据时,估计是编码方面的问题,导致最终输出不正确。
- //另外说一下上面这种方面的局限性。由于是用char,所以对于输入的数据,最终排序只能按一位字符来排,所以这
- //种方法是不可行的。
- //介绍另一种方法:
- //String类中的split方法,可以用如下形式输入1,2,3,4, 然后用split(“,”)的方法,它会以字符串数组分
- //组。这样就解决了获取输入数据不用再转换成char字符型的情况了。
- //源代码如下:
- import java.io.*;
- import java.util.*;
- public class SortNum {
- public SortNum() {
- // TODO Auto-generated constructor stub
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- String st[];
- try {
- File file = new File("c:/save.dat");
- FileWriter fw = new FileWriter(file);
- FileReader fr = new FileReader(file);
- BufferedReader br = new BufferedReader(new InputStreamReader(
- System.in));
- String s = br.readLine();
- st = s.split(",");
- fw.write(s);
- Arrays.sort(st);
- for (int i = 0; i < st.length; i++) {
- System.out.print(st[i] + " ");
- fw.append(st[i] + " ");
- }
- br.close();
- fr.close();
- fw.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- //不过这个其实也有点小问题,针对字符串数组的排序,Arrays.sort排序的思想应该是按先按字符内容,再按字符内
- //容大小来排的。大家可以试试,当输入10,100,50,5时,它的输出是5,10,100,50
- //其实要解决这个问题也比较简单,不要用Arrays.sort来排序,自己写个排序的算法,使用冒泡来排就可以了。有兴
- //趣的不妨试试。
JAVA对文件内数据进行排序的解决办法
最新推荐文章于 2024-08-01 08:46:47 发布