zoukankan      html  css  js  c++  java
  • Java基础面试操作题:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中

    package com.swift;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class IO_sort_content {
    
        public static void main(String[] args) {
            /*
             * 已知文件 a.txt 文件中的内容为“bcdeadferwplkou”,
             * 请编写程序读取该文件内容,并按照自然顺序排序后输出到 b.txt 文件中。
             * 即 b.txt 中的文件内容应为“abcd…………..”这样的顺序。
             */
    
                try {
                    FileInputStream fis=new FileInputStream("E:\neck\a.txt");
                    FileOutputStream fos=new FileOutputStream("E:\neck\b.txt");
                    byte[] kilo=new byte[4*1024];
                    int len;
                        while((len=fis.read(kilo))!=-1) {
                            fos.write(kilo,0,len);
                            fos.flush();
                        }
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }
    
    }

    上面只是做到读取并写入另一个文件,并没有进行排序

    下面是排序的方法

    package com.swift;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    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.Arrays;
    
    public class IO_sort_content {
    
        public static void main(String[] args) {
            /*
             * 已知文件 a.txt 文件中的内容为“bcdeadferwplkou”,
             * 请编写程序读取该文件内容,并按照自然顺序排序后输出到 b.txt 文件中。
             * 即 b.txt 中的文件内容应为“abcd…………..”这样的顺序。
             */
    
                
                try {
                    BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("E:\neck\a.txt"),"GB2312"));
                    StringBuffer sb=new StringBuffer();
                    String str;
                        while((str=br.readLine())!=null) {
                            sb.append(str);
                        }
                        String source=sb.toString();
                        char[] src=source.toCharArray();
                        Arrays.sort(src);
                        String destination=String.valueOf(src);
                        System.out.println(destination);
                        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E:\neck\b.txt"),"GB2312"));
                        bw.write(destination);
                        bw.flush();
                        
                        sb.setLength(0);
                        sb.append(destination);
                        System.out.println(sb.reverse());//逆序
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }
    
    }

     也可以把字节流直接排序了,比较精简

    package com.swift;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.util.Arrays;
    
    public class IO_sort_content {
    
        public static void main(String[] args) {
            /*
             * 已知文件 a.txt 文件中的内容为“bcdeadferwplkou”, 请编写程序读取该文件内容,并按照自然顺序排序后输出到 b.txt 文件中。 即
             * b.txt 中的文件内容应为“abcd…………..”这样的顺序。
             */
    
            try {
                FileInputStream fis = new FileInputStream("E:\neck\a.txt");
                FileOutputStream fos = new FileOutputStream("E:\neck\b.txt");
                int len;
                byte[] arr = new byte[fis.available()];
                while ((len = fis.read(arr)) != -1) {
                    System.out.println("排序....");
                    Arrays.sort(arr);
                    System.out.println("写入...");
                    fos.write(arr,0,len);
                    fos.flush();
                }
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }
  • 相关阅读:
    某个牛人做WINDOWS系统文件详解
    常用ASP脚本程序集锦
    LINUX基础:文件安全与权限
    proftpd+mysql+quota
    apache2.0.49tomcat5.0.19jk2建立virtualHost
    URL Redirection(转) Anny
    顶级域名后缀列表(转) Anny
    \u4E00\u9FA5意义 Anny
    How to POST Form Data Using Ruby(转) Anny
    How to get rid of 'Enter password to unlock your login keyring' in Ubuntu(转) Anny
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8322186.html
Copyright © 2011-2022 走看看