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();
}
} }

Java基础面试操作题:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中的更多相关文章

  1. Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件

    package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...

  2. Java基础面试操作题: 获取 1-20 之间的随机数,共计 20 个,要求不能重复 获取 1-20 之间的随机数,共计 10 个,要求不能重

    package com.swift; import java.util.HashSet; import java.util.Random; import java.util.Set; public c ...

  3. Java基础面试操作题:线程同步代码块 两个客户往一个银行存钱,每人存三十次一次存一百。 模拟银行存钱功能,时时银行现金数。

    package com.swift; public class Bank_Customer_Test { public static void main(String[] args) { /* * 两 ...

  4. Java基础面试操作题: 线程问题,写一个死锁(原理:只有互相都等待对方放弃资源才会产生死锁)

    package com.swift; public class DeadLock implements Runnable { private boolean flag; DeadLock(boolea ...

  5. Java基础面试操作题:Java代理工厂设计模式 ProxyFactory 有一个Baby类,有Cry行为,Baby可以配一个保姆 但是作为保姆必须遵守保姆协议:能够处理Baby类Cry的行为,如喂奶、哄睡觉。

    package com.swift; public class Baby_Baomu_ProxyFactory_Test { public static void main(String[] args ...

  6. Java基础知识强化之IO流笔记52:IO流练习之 把一个文件中的字符串排序后再写入另一个文件案例

    1. 把一个文件中的字符串排序后再写入另一个文件 已知s.txt文件中有这样的一个字符串:"hcexfgijkamdnoqrzstuvwybpl" 请编写程序读取数据内容,把数据排 ...

  7. JAVA基础面试汇总

    一.基础知识:1.JVM.JRE和JDK的区别:    JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性.                  java ...

  8. Java基础面试系列(一)

    Java基础面试总结(一) 1. 面向对象和面向过程的区别 面向过程 面向对象 性能 高于面向对象 类加载的时候需要实例化,比较消耗资源 三易(易维护,易复用,易扩展) 不如面向对象 具有封装,继承, ...

  9. Java基础-线程操作共享数据的安全问题

    Java基础-线程操作共享数据的安全问题 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.引发线程安全问题 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运 ...

随机推荐

  1. JMeter - 如何创建可重用和模块化测试脚本

    概述: 我的应用程序几乎没有业务关键流程,我们可以从中提出不同的业务工作流程.当我试图在JMeter中提出性能测试脚本时,我需要找到一些方法来创建可重用/模块化的测试脚本.这样我就可以创建不同的工作流 ...

  2. Python Unittest - Test Fixtures 测试夹具

    一.什么是测试夹具 定义单个或者多个测试所需的环境准备(setUp),以及环境清理(tearDown). 例:连接数据库,或者创建Selenium WebDriver driver实例 二.测试夹具有 ...

  3. avro-maven-plugin

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  4. Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE)

    1.说明 自动化测试报告是一个很重要的测试数据,网上看了一下,使用HTMLTestRunner.py生成自动化测试报告使用的比较多,但是呢,小白刚刚入手,不太懂,看了很多博客,终于生成了一个测试报告, ...

  5. PHP根据经纬度计算距离

    思路: 公式: W为纬度对应的弧度,J为经度对应的弧度,如上图所示 下面代码  lat是纬度  lng是经度 /** * 根据经纬度算距离,返回结果单位是公里,先纬度,后经度 * @param $la ...

  6. 【ACM】最长公共子序列 - 动态规划

    最长公共子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列.tip:最长公共子序列也称作最 ...

  7. Spring 学习(三)AOP

    (1)AOP概述 - AOP:面向切面编程,扩展功能不修改源代码实现 - AOP采取横向抽取机制,取代了传统的纵向继承体系重复性代码 (2)AOP底层原理 原始方法------->纵向继承体系 ...

  8. 使用gulp构建工具

    之前一个demo中用的是grunt,照着grunt用到的插件找了下gulp的,总体使用还算顺畅,说实话并不觉得学习成本有降低什么的,差不多.不过也遇到一些问题: 1.gulp.dest()输出目录需要 ...

  9. 牛客网Java刷题知识点之构造函数与set方法、与类名同名的一般方法、构造函数中有return语句

    不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么.一般函数和构造函数什么区别呢.构造函数的重载.构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会 ...

  10. CSS细节

    写起这篇文章,是因为阅读张鑫旭到的一篇文章<CSS的学习瓶颈>,里面提到了要重视CSS的细节和实现机制.确实:有必要掌握一些关于CSS方面的细节,而不是遇到任何页面,都添加css.rese ...