import java.util.*;
import java.io.*;
public class FileEdit {
// 输出所有信息
public final static Object[] outputAll() {
Object[] dataArray = null;
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(
"data.dat"));
try {
dataArray = (Object[]) in.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
in.close();
} catch (Exception e) {
}
return dataArray;
}
// 判断是否存在此用户
public final static boolean isUser(Object[] in, Object[] data) {
boolean flag = false;
if ((data != null) && (in != null)) {
for (int i = 0; i < in.length; i += 2) {
System.out.println("判断中in[" + i + "]" + in[i]);
// if 代码相同
if ((in[i].equals(data[0])) && (in[i + 1].equals(data[1]))) {
flag = true;
break;
}
}
}
return flag;
}
// 假如文件内已有本信息,更新文件数据
public final static Object[] update(Object[] in, Object[] data) {
Object[] array = null;
int index = 0;
int n = 4;
for (int i = 0; i < in.length; i++) {
System.out.println("in[" + i + "]" + in[i]);
// if 代码相同
if (in[i].equals(data[1])) {
index = i - 1;
System.out.println("更新index=" + index);
}
}
for (int j = 0; j < n; j++) {
System.out.println("更新中的index=" + index);
in[index + j] = data[j];
System.out.println("更新中的index + j=" + (index + j));
}
array = in;
return array;
}
// 判断是否已含有本信息,这个方法的作用是将文件中的相关信息返回,m表示要比较的是data数组中第m个元素
public final static Object[] isAlreadyHas(Object[] in, Object[] data, int m) {
Object[] a = null;
// MsgLong代表每次存入时的信息数是多少,即存入的数组长度
int MsgLong = data.length;
System.out.println("MsgLong=" + MsgLong);
System.out.println("查找时调用的m为" + m);
if (in == null) {
System.out.println("in == null");
}
// 这里根据index判断搜索到的信息会有多长,建一个数组a准备储存每一项符合条件的信息
int index = 0;
if ((data != null) && (in != null)) {
// 用index先进行一次比较以确定该设置多大的数组来存数据
for (int i = m; i < in.length; i += MsgLong) {
// 转为String是为了可以使用去空格的trim()方法
if (in[i].toString().trim().equalsIgnoreCase(
data[m].toString().trim())) {
index++;
System.out.println("index=" + index);
}
}
a = new Object[index * 4];
} else {
}
System.out.println("index=" + index);
if (index != 0) {
System.out.println("a.length=" + a.length);
}
int n = 0;
// 上面定义了一个n,指示当前已将数组存到哪一位
if ((data != null) && (in != null)) {
/*
* 每次只比较data(长度为MsgLong)数组中的第m位 i第一次为m,后面每次递加MsgLong个单位,用来指示文件所读出的数组
*/
for (int i = m; i < in.length; i += MsgLong) {
// //////当某位相同时
if (in[i].toString().trim().equalsIgnoreCase(
data[m].toString().trim())) {
System.out
.println("in[i].toString().trim().equalsIgnoreCase(data[m].toString())"
+ "\n"
+ "in[i].toString="
+ in[i].toString()
+ "data[m].toString="
+ data[m].toString());
System.out.println("找到");
int b = i + (MsgLong - m);// b指示in数组某个单元的末位元素
// /j为该单元首位元素序号
for (int j = i - m; j < b; j++) {
a[n] = in[j];
System.out.println("n=" + n + ",j=" + j);
System.out.println(a[n]);
n++; // 每存入数组中一位,把充当指针的n往后移
}
}
}
}
if (a == null) {
System.out.println("a==null");
}
return a;
}
// 将主数据数组写入文件
public final static void output(Object[] dataArray, File f) {
try {
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream(f));
out.writeObject(dataArray);
out.close();
} catch (Exception e) {
}
}
// 从文件中读取数据到数组中
public final static Object[] DataInput(File f)
throws ClassNotFoundException {
Object[] dataArray = null;
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(f));
dataArray = (Object[]) in.readObject();
in.close();
} catch (Exception e) {
return null;
}
return dataArray;
}
// 添加一条记录到数组中
public final static Object[] add(Object[] in, Object[] data) {
Object[] array = null;
if (in != null) {
array = new Object[in.length + data.length];
int i;
for (i = 0; i < in.length; i++) {
array[i] = in[i];
}
for (int j = 0; j < data.length; j++) {
array[i] = data[j];
i++;
}
} else
array = data;
return array;
}
// 从数组中删除一条记录
public final static Object[] delete(Object[] in, Object[] data) {
Object[] array = null;
if ((data != null) && (in != null)) {
int i, index = 0;
int n = 4;
System.out.println("data=" + data[1]);
for (i = 0; i < in.length; i++) {
System.out.println("in[" + i + "]" + in[i]);
// if 代码相同
if (in[i].equals(data[1])) {
index = i;
System.out.println("indexaa=" + index);
System.out.println("找到此记录");
break;
}
}
System.out.println("index=" + index);
if ((in.length - n) == 0) {
array = null;
} else {
// 创建一个比in少一个单位的数组
Object[] array2 = new Object[in.length - n];
// 往array2存入data前数据
for (i = 0; i < index; i++) {
if (in[i] == null) {
continue;
} else {
array2[i] = in[i];
System.out.println("sadasd" + array2[i]);
}
}
// 往array2存入data后数据
for (; i < array2.length; i++) {
if (in[i + n] == null) {
continue;
} else {
array2[i] = in[i + n];
System.out.println("sadasd" + array2[i]);
}
}
array = array2;
}
} else {
array = in;
System.out.println("请输入型号");
}
return array;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
简易手机店管理程序源码.rar (12个子文件)
src
Msg.java 3KB
EditPass.java 2KB
Ok.java 2KB
FoundItPro.java 5KB
SearchSuccess.java 1KB
Search.java 5KB
SaveData.java 4KB
Main.java 1KB
DeletePro.java 3KB
First.java 890B
Login.java 2KB
FileEdit.java 6KB
共 12 条
- 1
资源评论
lins87
- 粉丝: 3
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功