📄 studentsmanagement.java
字号:
package fileUtility;
import java.io.*;
public class StudentsManagement {
public static Student students[] = null;
static final int nameLength = 31;
static final int length = nameLength + 1;
final static int intLength = 4;
static final int studentsLength = 512;
static final int passwordStart = 64;
private static StringBuffer name = new StringBuffer(nameLength);
public StudentsManagement() {
students = getStudents();
}
private Student[] getStudents() {
Student students[] = null;
try {
//读取序列号
RandomAccessFile f = new RandomAccessFile(filePath.students, "r");
students = new Student[((int) (f.length() / studentsLength))];
// System.out.println(f.length() / studentsLength);
for (int i = 0; i < students.length; i++) {
students[i] = new Student();
students[i].serial = i;
f.seek(i * studentsLength);
students[i].ID = f.readInt(); // ID
students[i].isBoy = f.readBoolean(); // 性别
students[i].name = f.readUTF(); //name
f.seek(i * studentsLength + passwordStart);
students[i].password = f.readUTF();
f.seek(i * studentsLength + 2 * passwordStart);
students[i].question = f.readUTF();
f.seek(i * studentsLength + 4 * passwordStart);
students[i].answer = f.readUTF();
// students[i].print();
}
f.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
/** @todo */
} catch (IOException ex) {
ex.printStackTrace();
/** @todo Handle this exception */
}
return students;
}
//
// public static Student[] getFriends(int ID) {
// Student friends[] = getFriendsSerial(ID);
// return null;
// /** @todo */
// }
public static int[] getFriendsSerial(String fileName) {
// Student friends[] = null;
int friendsSerial[] = null;
try {
//读取序列号
RandomAccessFile f = new RandomAccessFile(fileName, "r");
// friends = new Student[((int) (f.length() / intLength))];
friendsSerial = new int[((int) (f.length() / intLength))];
for (int i = 0; i < friendsSerial.length; i++) {
// friends[i] = new Student();
friendsSerial[i] = f.readInt();
}
f.close();
//读取信息
} catch (FileNotFoundException ex) {
return null;
// ex.printStackTrace();
/** @todo */
} catch (IOException ex) {
ex.printStackTrace();
/** @todo Handle this exception */
}
return friendsSerial;
}
/**
public static Student[] getFriendsSerial(String fileName) {
Student friends[] = null;
try {
//读取序列号
RandomAccessFile f = new RandomAccessFile(fileName, "r");
friends = new Student[((int) (f.length() / intLength))];
for (int i = 0; i < friends.length; i++) {
friends[i] = new Student();
friends[i].serial = f.readInt();
}
f.close();
//读取信息
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return friends;
}
*/
public static boolean removeFriend(String fileName, int serial) {
try {
RandomAccessFile f = new RandomAccessFile(fileName, "rw");
int friendsNumber = ((int) (f.length() / intLength));
if (friendsNumber == 0) {
f.close();
File file = new File(fileName);
file.delete();
return false;
}
for (int i = 0; i < friendsNumber; i++) {
if (f.readInt() == serial) {
if (friendsNumber == 1) {
f.setLength(0);
} else if (friendsNumber - 1 == i) {
f.setLength(f.length() - intLength);
} else {
f.seek(f.length() - intLength);
int temp = f.readInt();
f.seek(i * intLength);
f.setLength(f.length() - intLength);
f.writeInt(temp);
}
f.close();
return true;
}
}
f.writeInt(serial);
f.close();
return true;
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
/** @todo Handle this exception */
}
return false;
}
public static boolean removeFriend(int userID, int friendSerial) {
return removeFriend(filePath.friendsPath + userID + ".txt",
friendSerial);
}
private static boolean addFriend(String fileName, int serial) {
try {
File file = new File(fileName);
// if (!file.canWrite()) {
// return false;
// }
RandomAccessFile f = new RandomAccessFile(fileName, "rw");
// System.out.println(f.length() + " =length");
f.seek(f.length());
f.writeInt(serial);
// System.out.println(f.length() + " =length_changed");
f.close();
return true;
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
/** @todo Handle this exception */
}
return false;
}
public static boolean addFriend(int userID, int friendSerial,
int[] friendSerials) {
if (friendSerials != null) {
for (int i = 0; i < friendSerials.length; i++) {
if (friendSerial == friendSerials[i]) {
return false;
}
}
}
return addFriend(filePath.friendsPath + userID + ".txt", friendSerial);
}
/**
* getFriends
*
* @param ID int
*/
public static int[] getFriendsSerial(int ID) {
// RandomAccessFile f=new RandomAccessFile((filePath.file+Integer.toString(ID)),"r");
return getFriendsSerial(filePath.friendsPath + ID + ".txt");
}
public static void main(String[] args) throws FileNotFoundException,
IOException {
// addFriend
for (int i = 100000; i < 100100; i++) {
for (int j = 0; j < 100; j++) {
if (j != i - 100000) {
addFriend(i, j, getFriendsSerial(i));
}
// if(i!=j)removeFriend(i,j);
}
// removeFriend(i,0);
}
//
// //清除
// RandomAccessFile fff = new RandomAccessFile("2.txt", "rw");
// fff.setLength(0);
// fff.close();
//
// //test addFriend()
// System.out.println("test addFriend()");
// // File file = new File("ab.txt");
// // file.delete();
// int fri[]={'a','b'};
// for (int i = 'a'; i <= 'g'; i++) {
// addFriend("ab.txt", i);
//
// }
//// Student ff[] = StudentsManagement.getFriendsSerial("ab.txt");
//// System.out.println("friendNumber=" + ff.length);
//// for (int i = 0; i < ff.length; i++) {
//// System.out.println(ff[i].serial + " " + ((char) (ff[i].serial)));
//// }
//// System.out.println("");
// int ff[] = StudentsManagement.getFriendsSerial("ab.txt");
// System.out.println("friendNumber=" + ff.length);
// for (int i = 0; i < ff.length; i++) {
// System.out.println(ff[i] + " " + ((char) (ff[i])));
// }
// System.out.println("");
//
// //test removeFriend()
// System.out.println("test removeFriend()");
// for (int i = 'g'; i >= 'a'; i--) {
// // boolean b = removeFriend("ab.txt", i);
// // System.out.println(b);
// }
//
//// Student ffff[] = StudentsManagement.getFriendsSerial("ab.txt");
//// System.out.println("friendNumber=" + ffff.length);
//// for (int i = 0; i < ffff.length; i++) {
//// System.out.println(ffff[i].serial + " " + ((char) (ffff[i].serial)));
//// }
//
// int ffff[] = StudentsManagement.getFriendsSerial("ab.txt");
// System.out.println("friendNumber=" + ffff.length);
// for (int i = 0; i < ffff.length; i++) {
// System.out.println(ffff[i] + " " + ((char) (ffff[i])));
// }
}
// Friend getFriend(RandomAccessFile f, int friendSerial) throws IOException {
//
// if (f.) {
//
// }
// friend[friendSerial].ID = f.readInt();
//
// return null;
// }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -