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();
            }
        }
    
    }
  • 相关阅读:
    第一部分 android display(sufaceflinger & overlay)
    UML类图关系大全
    第二部分 MediaPlayer的接口与架构
    Climbing Stairs
    Add Binary
    Plus One
    Unique Paths
    Length of Last Word
    Count and Say
    Valid Sudoku
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8322186.html
Copyright © 2011-2022 走看看