水文协议java代码实现 水文协议报文规范( 二 )


显式长度方法:
Java代码import java.io.DataInputStream;import java.io.EOFException;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class LengthFramer implements Framer {public static final int MAXMESSAGELENGTH=65535;public static final int BYTEMASK=0xff;public static final int SHOTMASK=0xffff;public static final int BYTESHIFT=8;private DataInputStream in;// wrapper for data I/Opublic LengthFramer(InputStream in) throws IOException{this.in=new DataInputStream(in);}@Overridepublic void frameMsg(byte[] message, OutputStream out) throws IOException {if(message.lengthMAXMESSAGELENGTH){throw new IOException("message too long");}//write length prefixout.write((message.lengthBYTEMASK)BYTEMASK);out.write(message.lengthBYTEMASK);//write messageout.write(message);out.flush();}@Overridepublic byte[] nextMsg() throws IOException {int length;try{length=in.readUnsignedShort();}catch(EOFException e){//no (or 1 byte) message;return null;}//0=length=65535;byte [] msg=new byte[length];in.readFully(msg);//if exception,it's a framing error;return msg;}}
Java帮我写下代码~项目结构如下水文协议java代码实现:
代码如下
package main;
public class Course {
private String classNum;
private String credit;
private String startClassDate;
private String endClassDate;
private String teacher;
private String assessment;
public String getClassNum() {
return classNum;
}
public void setClassNum(String classNum) {
this.classNum = classNum;
}
public String getCredit() {
return credit;
}
public void setCredit(String credit) {
this.credit = credit;
}
public String getStartClassDate() {
return startClassDate;
}
public void setStartClassDate(String startClassDate) {
this.startClassDate = startClassDate;
}
public String getEndClassDate() {
return endClassDate;
}
public void setEndClassDate(String endClassDate) {
this.endClassDate = endClassDate;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public String getAssessment() {
return assessment;
}
public void setAssessment(String assessment) {
this.assessment = assessment;
}
@Override
public String toString() {
return " 课程号:" + classNum + ", 学分:" + credit
+ ", 上课时间:" + startClassDate + ", 下课时间:"
+ endClassDate + ", 教师:" + teacher + ",考核方式:"
+ assessment + "";
}

}
package main;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
System.out.println("创建学生请输入姓名:");
Student stu1 = new Student();
stu1.setName(sc.nextLine());
Scanner sc1 = new Scanner(System.in);
System.out.println("创建学生请输入学号:");
stu1.setNumber(sc1.nextLine());
System.out.println("请选择课程,课程如下:");
ListCourse list2 = new ArrayListCourse();
stu1.setCourses(list2);
ListCourse list = readTxt();
for (Course course : list) {
System.out.println(course.toString());
}
for (int i = 1; i5; i++) {
System.out.println("请输入第"+i+"个课程号:");
//输入第一个课程号
list2 = handleClass(list, list2);
System.err.println("已选择成功!");
list = notSelectClass(list, list2);

推荐阅读