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();
}
} }
Java基础面试操作题:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中的更多相关文章
- Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- Java基础面试操作题: 获取 1-20 之间的随机数,共计 20 个,要求不能重复 获取 1-20 之间的随机数,共计 10 个,要求不能重
package com.swift; import java.util.HashSet; import java.util.Random; import java.util.Set; public c ...
- Java基础面试操作题:线程同步代码块 两个客户往一个银行存钱,每人存三十次一次存一百。 模拟银行存钱功能,时时银行现金数。
package com.swift; public class Bank_Customer_Test { public static void main(String[] args) { /* * 两 ...
- Java基础面试操作题: 线程问题,写一个死锁(原理:只有互相都等待对方放弃资源才会产生死锁)
package com.swift; public class DeadLock implements Runnable { private boolean flag; DeadLock(boolea ...
- Java基础面试操作题:Java代理工厂设计模式 ProxyFactory 有一个Baby类,有Cry行为,Baby可以配一个保姆 但是作为保姆必须遵守保姆协议:能够处理Baby类Cry的行为,如喂奶、哄睡觉。
package com.swift; public class Baby_Baomu_ProxyFactory_Test { public static void main(String[] args ...
- Java基础知识强化之IO流笔记52:IO流练习之 把一个文件中的字符串排序后再写入另一个文件案例
1. 把一个文件中的字符串排序后再写入另一个文件 已知s.txt文件中有这样的一个字符串:"hcexfgijkamdnoqrzstuvwybpl" 请编写程序读取数据内容,把数据排 ...
- JAVA基础面试汇总
一.基础知识:1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java ...
- Java基础面试系列(一)
Java基础面试总结(一) 1. 面向对象和面向过程的区别 面向过程 面向对象 性能 高于面向对象 类加载的时候需要实例化,比较消耗资源 三易(易维护,易复用,易扩展) 不如面向对象 具有封装,继承, ...
- Java基础-线程操作共享数据的安全问题
Java基础-线程操作共享数据的安全问题 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.引发线程安全问题 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运 ...
随机推荐
- AT2348 HonestOrUnkind
传送门 显然\(a>b\)的情况下才有解 考虑先找出一个诚实的人,然后剩下的都可以在\(n\)次以内问出来了 发现如果一个人说另一个人是说谎的那么这两个人必有一个是说谎的,由于诚实的人严格多于不 ...
- applicationContext-datasource.xml
<?xml version="1.0" encoding="utf-8"?> <beans default-init-method=" ...
- C# Thread类 线程优先级
1.C#对线程进行操作时,通过Thread类,可以对线程进行创建.挂起.恢复.休眠.终止及设置优先级. Thread类位于System.Threading命名空间下,该命名空间还包含一个ThreadP ...
- Java面向对象_包装类访问修饰符
在java中有一个设计的原则"一切皆对象",java中的基本数据类型就完全不符合这种设计思想,因为八种基本数据类型并不是引用数据类型,所以java中为了解决这样的问题,jdk1.5 ...
- (转)深入浅出linux系统umask值及其对应的文件权限讲解
浅出linux系统umask值及其对应的文件权限讲解 原文:http://blog.51cto.com/oldboy/1060032 缘起:1.此文的撰写特别为感谢51cto的博客工作人员和领导,老男 ...
- 其它电脑访问mysql被拒绝
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话. mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDE ...
- Kotlin容器
1. 容器 可变/不可变 List<out T> 只读list; MutableList<T>; Set<out T>/MutableSet<T> Ma ...
- 《从0到1学习Flink》—— Data Sink 介绍
前言 再上一篇文章中 <从0到1学习Flink>-- Data Source 介绍 讲解了 Flink Data Source ,那么这里就来讲讲 Flink Data Sink 吧. 首 ...
- Elasticsearch如何安装中文分词插件ik
elasticsearch-analysis-ik 是一款中文的分词插件,支持自定义词库. 安装步骤: 1.到github网站下载源代码,网站地址为:https://github.com/medcl/ ...
- wepy-cli 开发小程序如何使用vant组件
同样使用wepy-cli快速生成的小程序,目前可以使用组件: 直接通过 git 下载 Vant Weapp 源代码,并将dist目录拷贝到自己的项目中 git clone https://github ...