黑马程序员技术交流社区
标题:
黑马程序员 文件在磁盘上的操作
[打印本页]
作者:
Wchunwei
时间:
2015-1-1 14:25
标题:
黑马程序员 文件在磁盘上的操作
-----<a target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ------
package com.itheima;
package com.filesystem.method;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.filesystem.beans.DiskContain;
import com.filesystem.beans.File;
import com.filesystem.beans.Node;
import com.filesystem.beans.User;
public class MethodUtil {
private DiskContain diskContain = null;
private List<User> list_user = null;
public MethodUtil(DiskContain diskContain,List<User> list_user)
{
this.diskContain = diskContain;
this.list_user = list_user;
}
public char[] getDiskAllDiskContain() //从模拟硬盘得到要读写的空间
{
return diskContain.getDiskcontain();
}
public int getDiskSpare() //得到硬盘闲置空间大小
{
return this.getDiskAllLength()-getDiskOccupy();
}
public int getDiskAllLength() //得到硬盘空间的总大小
{
return this.getDiskAllDiskContain().length;
}
public int getDiskOccupy() //得到已使用的硬盘空间大小
{
char[] diskcon = this.getDiskAllDiskContain();
int position = 0;
for(int i=0;i<diskcon.length;i++)
{
if('@'==diskcon[i])
{
position=i;
break;
}
}
return position;
}
public boolean checkLogin(User user) //检验用户登录
{
for(int i = 0;i<list_user.size();i++)
{
if(list_user.get(i).getName().equals(user.getName())&&list_user.get(i).getPassword().equals(user.getPassword()))
{
return true;
}
}
return false;
}
public File findFile(String fileName,User user)//找到相应的文件
{
List<File> list_file = user.getList_file();
Iterator<File> it_file = list_file.iterator();
while(it_file.hasNext())
{
File file = it_file.next();
if(file.getFileName().equals(fileName))
{
return file;
}
}
return null;
}
public List<File> getListFileSub(String fileParentName,User user) //得到子目录下的文件
{
List<File> list_sub = new ArrayList<File>();
List<File> list_all = user.getList_file();
Iterator<File> it_all = list_all.iterator();
while(it_all.hasNext())
{
File file_son = it_all.next();
if(fileParentName.equals(file_son.getFileName_parent()))
{
list_sub.add(file_son);
}
}
return list_sub;
}
public void writeToFile(String fileName,String content,User user) //向文件中写入内容
{
File file = this.findFile(fileName, user);
if(file.getStatus()==0)
{
System.out.println("文件没有打开,请先打开文件!");
return;
}
if(this.getDiskSpare()<content.length())
{
System.out.println("存储空间不够,请插入其他存储设备!");
return;
}
char[] ch_con = content.toCharArray();
int startPosition = this.getDiskOccupy();
int length = ch_con.length;
int endPosition = startPosition+length;
char[] ch_disk = this.diskContain.getDiskcontain();
for(int i = 0;i<ch_con.length;i++)
{
ch_disk[i+startPosition] = ch_con[i];
}
file.getList_node().add(new Node(startPosition,length,endPosition));
System.out.println("内容写入文件成功");
}
public String readFile(String fileName,User user) //读文件相应的文件
{
File file = this.findFile(fileName, user);
if(file.getStatus()==0)
{
System.out.println("文件没有打开,请先打开文件!");
return null;
}
char[] ch_disk = this.diskContain.getDiskcontain();
StringBuilder str_builder = new StringBuilder();
List<Node> list_node = file.getList_node();
Iterator<Node> it_node = list_node.iterator();
while(it_node.hasNext())
{
Node node = it_node.next();
for(int i = node.getStartPosition();i<node.getEndPosition();i++)
{
str_builder.append(ch_disk[i]);
}
}
return str_builder.toString();
}
public void createFile(String fileName,String fileName_parent,User user)//创建文件
{
user.getList_file().add(new File(fileName,fileName_parent));
}
public void openFile(String fileName,User user)//打开文件
{
File file = this.findFile(fileName, user);
if(file.getStatus()==0)
{
file.setStatus(1);
System.out.println("文件打开成功");
return;
}else
{
System.out.println("文件已经被打开");
return;
}
}
public void closeFile(String fileName,User user)//关闭文件
{
File file = this.findFile(fileName, user);
if(file.getStatus()==1)
{
file.setStatus(0);
System.out.println("文件关闭成功");
return;
}else
{
System.out.println("文件已经被关闭");
return;
}
}
public void deleteFile(String fileName,User user)//删除文件
{
List<File> list_file = user.getList_file();
Iterator<File> it_file = list_file.iterator();
while(it_file.hasNext())
{
File file = it_file.next();
if(file.getFileName().equals(fileName))
{
list_file.remove(file);
System.out.println("删除文件成功");
return;
}
}
return;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2