MySort作业与IO-Myhead
一、MySort
1.题目要求
- 模拟实现Linux下Sort -t : -k 2的功能。
- 要有伪代码,产品代码,测试代码(注意测试用例的设计)
- 参考 Sort的实现。提交博客链接。
2.产品代码
import java.util.*;
public class MySort {
public static void main(String [] args) {
String [] toSort = {"aaa:10:1:1",
"ccc:30:3:4",
"bbb:50:4:5",
"ddd:20:5:3",
"eee:40:2:20"};
System.out.println("Before sort:");
for (String str: toSort) {
System.out.println(str);
}
int [] a = new int[toSort.length];
for (int i = 0; i < toSort.length; i++){
String [] tmp = toSort[i].split(":");
a[i] = Integer.parseInt(tmp[1]);
}
Arrays.sort(a);
System.out.println("After sort:");
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < toSort.length; j++) {
if (a[i] == Integer.parseInt((toSort[j].split(":"))[1])) {
System.out.println(toSort[j]);
}
}
}
}
}
3.设计思路
- 首先将所输入的字符串放入一个数组当中
- 输出排序前
- 将字符穿中的第二列数字一次录入另外一个数组a[]中并调用程序对第二列进行排序额
- 将排序好的数组依次输出完成
4.实验截图

二、IO-myhead
1.题目要求
- 编写代码GenNumber.java生成一个文本文件 “你的学号.txt”, 一共“你的学号的后三位行”,每行一个数字,该数字是1-你的学号后四位的一个随机数,提交代码和生成文件
- 研究linux的head命令, 实现head -n 的功能MyHead.java, 用“你的学号.txt”进行测试,执行 java MyHead n 打印“你的学号.txt”前n行
- 编写T2B.java, 将 “你的学号.txt”的前十行转化成二进制文件“你的学号.bin” ,可以用Linux 下od命令或Windows下的winhex工具查看转化结果,提交代码和生成文件
- 编写B2T.java, 将 “你的学号.bin”的转化成文本文件“你的学号.txt”, 每行除了有数据外,还要添加行号,提交代码和生成文件
- 课上无法完成的课下完成需要答辩
2.设计思路
- 首先建立学号.txt 文件
- 选则文件输入输出的方法,这里GenNumer ,MyHead 和T2B 选择了字符输入输出流,B2T选择了缓冲流,目的是为了读取文件中的行数
- 将生成的随机数写入学号.txt 中
- 从学号.txt 中读取内容,利用换行符将读取到的内容分隔,从命令行输入想要读取的行数,依次读取并输出
- 从学号.txt 中读取内容,读取前十行内容转化为二进制并输入至学号.bin 中,这里用到了toBinaryString 方法,作用是将十进制转化为二进制,这个方法在前面也用到过
- 从学号.bin 中读取内容,转化为十进制数输出至学号_1.txt 中,用到了bufferedReaded 类中的readLine() 和newLine() 方法
3.实验代码
import java.io.*;
import java.util.Random;
public class GenNumber {
public static void main(String[] args) {
String filepath = System.getProperty("user.dir");
filepath += "\\20175329.txt";
System.out.println(filepath);
try {
File file = new File(filepath);
if (!file.exists()) { //如果不存在data.txt文件则创建
file.createNewFile();
System.out.println("20175329.txt创建完成");
}
FileWriter fw = new FileWriter(file); //创建文件写入
BufferedWriter bw = new BufferedWriter(fw);
//产生随机数据,写入文件
Random random = new Random();
for (int i = 1; i < 329; i++) {
int randint = (int) Math.floor((random.nextDouble() * 5329.0));
bw.write(String.valueOf(randint)); //写入一个随机数
bw.newLine(); //新的一行
}
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
4.实验截图


MySort作业与IO-Myhead的更多相关文章
- 20155213 第十二周课堂作业MySort
20155213 第十二周课堂作业MySort 作业要求 模拟实现Linux下Sort -t : -k 2的功能 参考 Sort的实现 提交码云链接和代码运行截图 初始代码 1 import java ...
- c语言-遍历pci设备(1)io访问
前言 最近楼主比较苦逼啊,主管布置了一道访问pci的作业,这个作业使用io方式还可以非常浪地将所有的东西都给读取出来,虽然不能读取出pci-e设备的所有信息,但是还是可以将256位的其他东西给读出来的 ...
- MySort(选做)
一.题目要求 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实 ...
- python的进程与线程(一)
摘要: 源地址:https://www.cnblogs.com/yuanchenqi/articles/6248025.html 如有侵权,立即删除 操作系统 学习进程和线程的知识,先了解一下底层操作 ...
- 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #20 使用fio进行I/O的基准测试
HACK #20 使用fio进行I/O的基准测试 本节介绍使用fio进行模拟各种情况的I/O基准测试的操作方法.I/O的基准测试中有无数需要考虑的因素.是I/O依次访问还是随机访问?是通过read/w ...
- 20155212 2016-2017-2《Java程序设计》课程总结
每周博客 每周作业链接汇总 预备作业一:专业理解.未来展望.期望的师生关系. 预备作业二:HOMEWORK-2 预备作业三:HOMEWORK-3 第一周作业:学习教材Chapter 1 Java平台概 ...
- 20155204 2016-2017-2《Java程序设计》课程总结
20155204 2016-2017-2<Java程序设计>课程总结 目录 作业链接汇总 作业总结 实验报告链接汇总 代码托管链接 课堂项目实践 学习经验 问卷调查 链接二维码 (按顺序) ...
- MapReduce源代码分析之JobSubmitter(一)
JobSubmitter.顾名思义,它是MapReduce中作业提交者,而实际上JobSubmitter除了构造方法外.对外提供的唯一一个非private成员变量或方法就是submitJobInter ...
- MapReduce源码分析之JobSubmitter(一)
JobSubmitter,顾名思义,它是MapReduce中作业提交者,而实际上JobSubmitter除了构造方法外,对外提供的唯一一个非private成员变量或方法就是submitJobInter ...
随机推荐
- mysq练习
表名和字段 –1.学生表Student(s_id,s_name,s_birth,s_sex) --学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) ...
- jar包编译成 dex
1.将需要合并的jar放到同一个目录 2.编写一个google.xml文件写入如下内容 <!--?xml version="1.0" encoding="utf-8 ...
- 第二章·Elasticsearch内部分片及分片处理机制介绍
一.副本分片介绍 什么是副本分片? 副本分片的主要目的就是为了故障转移,如果持有主分片的节点挂掉了,一个副本分片就会晋升为主分片的角色. 在索引写入时,副本分片做着与主分片相同的工作.新文档首先被索引 ...
- -bash: ls: No such file or directory 错误的原因及解决办法
ubuntu出现如下错误: { Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.15.0-42-generic x86_64) * Documentation: ...
- linux基础—课堂随笔05_文本三剑客之SED
1.简介 sed是非交互式的编辑器,它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...
- python基础编程:生成器、迭代器、time模块、序列化模块、反序列化模块、日志模块
目录: 生成器 迭代器 模块 time 序列化 反序列化 日志 一.生成器 列表生成式: a = [1,2,3,3,4,5,6,7,8,9,10] a = [i+1 for i in a ] prin ...
- Android | 自动调整文本大小的 TextViews
简评:Auto-Sizing TextViews -- 当 TextView 的布局边界尺寸发生变化时,文本大小可以跟着自动缩放调整. 有时候我们需要 TextView 根据放入的内容来改变其文本大小 ...
- zencart批量插入TEXT文本属性attributes
有时候上传的产品与多级分类比较多,在后台添加文本属性如Name,Number等需要顾客自定义的内容就比较费神了.现在只需将以下代码保存为insert_attributes.php,变量$options ...
- 网络协议相关面试问题-DNS相关面试问题
对于网络上的大部通讯都是基于TCP/IP协议的, 其中最重要的是IP协议,它是基于IP地址的,而计算机通讯只能识别IP地址,如192.168.0.1,而不能识别像咱们在浏览器敲得见名之义的" ...
- Java应用的理解
一.程序 对每个程序来说,不管用什么语言开发出来的,他的功用分为三种: 1.接收输入流 2.处理数据 3.传出输出流 接收输入流,包括从网络.文件.用户输入等:传出输出流,包括网络.文件.显示设备等: ...