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基础-线程操作共享数据的安全问题 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.引发线程安全问题 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运 ...
随机推荐
- maven项目跳转页面报空指针错误 Servlet.service() for servlet 异常
Servlet.service() for servlet jsp threw exceptionjava.lang.NullPointerExceptionat org.jaronsource.ms ...
- Django 03 模板路径、模板变量、常用的过滤器
Django 03 模板路径.模板变量.常用的过滤器 一.模板路径 #1.在每个app下面添加一个templates文件 #2.在项目views.py里面第33行INSTALLED_APPS里面添加上 ...
- Codeforces Round #467(Div2)题解
凌晨起来打CF,0:05,也是我第一次codeforces 第一题: 我刚开始怀疑自己读错题了,怎么会辣么水. 判除了0的数字种类 #include <cstdio> ; ]; int m ...
- List<Object> 使用Linq
List<Asset> bdList = allAsset.Where(m => m.Owner.Depts == view.DeptName).ToList(); var quer ...
- 自动生成actionbar 所需图片和style
http://jgilfelt.github.io/android-actionbarstylegenerator/
- Problem D. Dwarf Tower spfa
http://codeforces.com/gym/100269/attachments 首先建图,然后图中每条边的权值是会变化的,是由dis[x] + dis[y] ---> dis[m ...
- linux增加/删除虚拟IP地址
网卡上增加一个IP: ifconfig eth0:1 192.168.0.1 netmask 255.255.255.0 删除网卡的第二个IP地址: ip addr del 192.168.0.1 d ...
- Toad for Oracle针对于Oracle数据库的可视化管理工具使用
Toad for Oracle安装包下载地址:http://pan.baidu.com/s/1mgBOLZU 在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工 ...
- SQLServer数据库语句大全汇总
目录清单CONTEXT LIST1.数据库DataBase 1.1数据库建立/删除create/drop database 1.2数据库备份与恢复backup/restore database2.数据 ...
- HDU 5452——Minimum Cut——————【树链剖分+差分前缀和】ACdream 1429——Diversion——————【树链剖分】
Minimum Cut Time Limit: 3000/2000 MS (Java/Others) Memory Limit: 65535/102400 K (Java/Others)Tota ...