本文目录一览:
- 1、操作系统编写文件管理系统
- 2、用JAVA制作一个文件系统管理器文件目录浏览,创建目录,移动文件,文件改名,文件删除等等功能
- 3、求JAVA平台的文件管理器,可以查看系统文件夹的,jar格式,谢谢!!!!!
- 4、java基于xml文件学生信息管理系统
操作系统编写文件管理系统
为了实现远程文件管理系统的跨操作系统运行,设计了一套基于 Java Socket 的远程文件类应用程序接口(API),并在此基础上实现了一个图形界面的 Client/Server结构的远程文件管理系统。这套API在形式上类似于SunJDK本地文件类,开发人员使用这套 API 能方便快速地实现能满足自身需要的远程文件管理系统。关键词:Java; socket; JDK; 文件管理系统中图法分类号: 文献标识码: 文章编号:Design and realization of Java based remote file management system JIANGYing ,XIU Gui_hua (Shenyang Institute of Chemical Tecnology , Shenyang 110142, China) Abstract:A set of Java socket based application programming interface API) about the remote file system is designed to realize the(remote file management system's running on different operating systems, and a client/server structure based remote file managementsystem is realized with graphic interface using that set of API. This set of API is similar to the local file operation classes of the Sun JDK.Using this set of API the programmers can realize a remote file management system satisfying their requirement conveniently and rapidly. Key words:Java; socket; JDK; file management system 1 引 言 现有的远程文件管理系统主要有以下两种类型:①基于 FTP 协议的系统;②各操作系统自带的,只能在相同操作系统之间进行远程文件管理的系统。 对于第 1 种系统,有安装、管理复杂等缺点,并且同一种服务器端或客户端软件只能在同一种操作系统上安装使用;而第 2 种系统只能在相同的操作系统中使用。 Java 语言是一种优秀的跨平台语言,用 Java 语言编写的程序编译之后产生的 class 文件能在不同的操作系统上运行。因此,设计了一套在形式上类似于 Java 本地文件类的远程文件管理 API,并且在这套 API 的基础上实现了一个基于 C/S结 构的图形界面远程文件管理系统,这套系统的服务器端和客户端都能在不同的操作系统上运行。基于这套 API,各种类型的用户都能方便快速地实现出能满足自身需要的远程文件管理系统。 2 设计原则和相关技术 2.1 设计原则 系统基于传统的 Client/Server 两层结构设计,设计原则如 下:①客户端和服务器端都采用纯 Java语言编写,以保证系统的跨平台应用性;②客户端和服务器端用 Socket 进行底层通信;服务器端程序作为监听程序在需要管理的文件系统所在的主机中运行,监听来自客户端,也就是文件系统的管理者的管理操作命令。客户端和服务器端用 Socket 保持通信。 2.2 Java Socket 概述 流式 Socket 所完成的通信是一种基于连接的通信,即在通信开始之前先由通信双方确认身份并建立一条专用的虚拟 连接通道,然后它们通过这条通道传送数据信息进行通信,当 通 信 结 束 时 再 将 原 先 所 建 立 的 连 接 拆 除 。 Java 语 言 用 Java.Net.Socket 和Java.Net.ServerSocket 类来实现 Socket 通信。下面的代码片断表示了一个建立服务器端监听程序并与客户端进行简单通信的过程: ……//在 8000 端口新建一个监听服务ServerSocket listener = new ServerSocket(8000); //阻塞,直至捕捉到一个 client 端的请求Socket client = listener.accept(); //得到向客户端的输出流OutputStream out = client.getOutputStream(); //得到来源于客户端的输入流InputStream in = client.getInputStream(); String strHello =“Hello!”; byte[] hello = strHello.getBytes(); //向客户端发送消息“Hello!”out.write(hello); ……由上面的程序可见,监听程序在捕捉到客户端的连接请求后能得到向客户端的输出流(OutputStream 类)和来源于客户端的输入流(InputStream 类),调用输出流和输入流的相关方法,就能向客户端发送字节或者从客户端接收字节,这样就为远程文件管理系统提供了技术支持。 2.3 Java 文件类概述 Java 语言的文件操作功能十分强大,有丰富的类库来支 持文件操作,主要有 File 类、FileInputStream 类、FileOutputStream 类、FileSystemView 类、RandomAccessFile 类等。其中, File 类用来管理磁盘文件和目录,FileInputStream 和 FileOutputStream 类分别管理文件的输入和输出,FileSystemView 类主要 实现操作系统级别的文件操作 。这些类使用方便,功能强大,但是只能执行本地文件操 作。下面的代码显示了用 File 类和 FileSystemView 类判断一个驱动器是否为软盘驱动器的方法: …… FileSystemView fs= FileSystemView.getFileSystemView(); File drive = new File“A:\\”); if(fs.isFloppyDrive(drive)) System.out.println(“A 盘是软盘驱动器。”); else System.out.println(“A 盘不是软盘驱动器。”); …… 3 系统的设计 系统由 3 个部分组成:相关的一套 API,供客户端程序使用;服务器端程序;客户端程序。 3.1 相关 API 这套 API 的核心类是 FileSystem 类和 File 类,而 File 类的 实现又依赖于FileSystem类。(1)rg.rmfs.FileSystem 此类对应 Sun JDK 中的 javax.swing.filechooser.FileSystemView 类,并且是它的子类;FileSystem 类表示一个远程的文件 系统,用在客户端程序中,通过它提供的静态方法getFileSystem()可以得到 FileSystem 类的对象: public class FileSystem extends FileSystemView { private Socket socket; //与远程文件系统的 Socket 连接 private OutputStream out; //输出到远程文件系统的输出流private InputStream in; //来源于远程文件系统的输入流 public static synchronized FileSystem getFileSystem(String host,int port){ …… //用指定的主机和端口号来取得与远程文件系统的连接 socket = new Socket(host,port); out = socket.getOutputStream(); in = socket.getInputStream(); …… } //从一个文件输入流中读入字节 int read(FileInputStream fis,in,byte[] b,int off,int len) { …… String cmd =“READ”+fis.getID()+“END”; out.write(cmd.getBytes[]); in.read(b,off,len); …… } //向文件输出流输出字节 void write(FileOutputStream fos,byte[] b,int off,int len){ … String cmd =“WRITE”+fos.getID()+“END”; out.write(cmd.getBytes[]); out.write(b,off,len); { … { …… (2) org.rmfs.File 此类对应 Sun JDK 中的 Java.io. File 类,用在客户端程序 中,表示远程文件系统中的一个文件或者目录: public class File implements java.io.Serializable,java.lang.Comparable{ private FileSystem fs; //表示此文件所在的远程文件系统 private String path; //表示此文件在文件系统中的路径 //得到此文件所在的文件系统public FileSystem getFileSystem() {return fs; } //构造方法 public File(FileSystem fs,String path){ if path == null || fs==null) {…… throw new NullPointerException(); { …… {.…… (3) org.rmfs. FileInputStream 此类对应 Sun JDK 中的 java.io.FileInputStream 类,用来从一个远程文件中读取数据 public class FileInputStream extends java.io.InputStream { private FileSystem fs; //对应的文件所在的远程文件系统对象 private File file; //对应的远程文件对象//构造方法public FileInputStream(File file){ this.file = file; this.fs = file.getFileSystem(); {…… {…… (4)Java.io.FileOutputStream 此类对应 Sun JDK 中的 Java.io.FileOutputStream 类,用来向一个远程文件写数据 public class FileOutputStream extends java.io.OutputStream{ …//与 FileInputStream类似略 //构造方法 public FileOutputStream(File file){ this.file = file; this.fs = file.getFileSystem(); …… { //向输出流中写数据 public void write(byte[] b, int off, int len) throws IOExc-eption{ … fs.write(this,b,off,len); { …… {…… (5)org.rmfs. RandomAccessFile 此类对应 SunJDK 中的 java.io.RamdomAccessFile 类,功能也与之相似。由于前面介绍的 4 个类已经能实现远程文件管理系统的功能,故不再详细介绍此类。3.2 服务器端程序 服务器端程序向客户机提供远程文件访问服务,它实质上是一个在某个端口上进行监听的程序。FileSystem 类有一个域 socket,实际上就是与服务器端程序相连的 Socket 对象。服务器端程序直接与 FileSystem 类进行通信和传递数据。当服务器端程序捕捉到一个连接请求时,就代表有一个客户端程序正在连接服务器,这时,服务器端程序就生成一个线程来处理和客户端的通信。3.3 客户端程序 客户端程序使用上面介绍的 5 个类与远程文件系统进行通信,一个典型的操作流程是:调用 FileSystem getFileSystem(Stringhost, int port) 方法得到远程文件系统的对象;调用File(FileSystem fs,String path)方法得到一个远程文件对象;然后就可以根据得到的文件对象执行相关操作,如可以删除文件、可以向文件写数据(需要构造 FileOutputStream 类)、可以从文件中读取数据(需要构造 FileInputStream 类)等。 客户端程序使用上面介绍的 5 个类,就可以完全屏蔽具体的 Socket 操作来进行网络通信,大大降低了程序的复杂度,提高了程序的开发效率。4 结 论设计了一套在形式上类似于 Sun 公司的标准本地文件处理类的 API,并在这套 API 的基础上实现了一个 Client/Server 结构的远程文件管理系统。由于这套 API 在形式上与 Sun 公司的文件处理类有相似的接口,并且完全屏蔽了底层的 Socket 操作,所以用户用这套 API能方便、快速地实现符合自身要求的远程文件管理系统。本文作者创新点:设计了类似于 Sun 公司的标准本地文件处理类的 API,并在这套 API 的基础上实现了一个 Client/Server 结构的远程文件管理系统,使用户能方便、快速地实现符合自身要求的远程文件管理系统。
用JAVA制作一个文件系统管理器文件目录浏览,创建目录,移动文件,文件改名,文件删除等等功能
/**
* 取得当前目录下文件对象
* @return
*/
public static Iterator getFiles(File currentFile) {
Vector vector = new Vector();
File afile[] = currentFile.listFiles();
for (int i = 0; i afile.length; i++)
if (afile[i].isFile())
vector.add(afile[i]);
return vector.iterator();
}
/**
* 取得当前目录下的子目录对象列表
* @return
*/
public static Iterator getAllDirectories(File currentFile) {
Vector vector = new Vector();
File afile[] = currentFile.listFiles();
//vector.add(new File(documentRoot, relativeFile + File.separator + "."));
try {
vector.add(new File(currentFile.getCanonicalFile() + File.separator + ".."));
for (int i = 0; i afile.length; i++)
if (afile[i].isDirectory())
vector.add(afile[i]);
} catch (IOException e) {
if (log.isErrorEnabled()) log.error(e);
}
return vector.iterator();
}
/**
* 取得当前目录下的子目录对象列表
* @return
*/
public static Iterator getDirectories(File currentFile) {
Vector vector = new Vector();
File afile[] = currentFile.listFiles();
for (int i = 0; i afile.length; i++)
if (afile[i].isDirectory())
vector.add(afile[i]);
return vector.iterator();
}
/**
* 将内容写入文件
* @param file
* @param content
* @throws IOException
*/
public static void writeFile(String file, String content)
throws IOException {
PrintWriter printwriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),BIND_ENCODING)));
printwriter.write(content);
printwriter.close();
if (printwriter.checkError())
if (log.isErrorEnabled())
log.error("Error encountered while writing the file!");
else
return;
}
代码太长,分批发.
求JAVA平台的文件管理器,可以查看系统文件夹的,jar格式,谢谢!!!!!
去天网设好机型,再在软件分类里点系统,进入后再点精品,再自己选择下载,推荐下载minicommander文件管理器。
java基于xml文件学生信息管理系统
你好,你要的学生信息管理系统。(1) Student类import java.io.Serializable;/** * @author liuxe * @since JDK 1.7.0_79 */public class Student implements Serializable { private int stuId; private String name; private String major; private String sex; private String contactWay; public int getStuId() { return stuId; } public void setStuId(int stuId) { this.stuId = stuId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getContactWay() { return contactWay; } public void setContactWay(String contactWay) { this.contactWay = contactWay; }}(2) StuMis类import java.io.*;import java.util.ArrayList;import java.util.List;/** * @author liuxe * @since JDK 1.7.0_79 */public class StuMis { public static List studentList = new ArrayList(); public static boolean add(Student student) { return studentList.add(student); } public static boolean remove(Student student) { return studentList.remove(student); } public static boolean update(Student student) { for (Student dto : studentList) { if (student.getStuId() == dto.getStuId()) { studentList.remove(dto); } } return studentList.add(student); } public static Student queryByStuId(int id) { for (Student dto : studentList) { if (id == dto.getStuId()) { return dto; } } return null; } public static List queryByName(String name) { List returnList = new ArrayList(); for (Student dto : studentList) { if (name.equals(dto.getName())) { returnList.add(dto); } } return returnList; } public static void saveToFile() { try { ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream( new File("." + File.separator + "student.dat"))); oo.writeObject(studentList); } catch (Exception ex) { ex.printStackTrace(); } } public static void readFromFile() { try { ObjectInputStream ois = new ObjectInputStream(new FileInputStream( new File("." + File.separator + "student.dat"))); studentList = (List) ois.readObject(); } catch (Exception ex) { ex.printStackTrace(); } }}(3)、StuMisTest类:主函数测试学生信息管理系统import java.util.List;/** * @author liuxe * @since JDK 1.7.0_79 */public class StuMisTest { public static void main(String[] args) { Student student = new Student(); student.setStuId(1); student.setName("AAA"); student.setMajor("AAAA"); student.setSex("A"); student.setContactWay("AA"); Student student2 = new Student(); student2.setStuId(2); student2.setName("BBB"); student2.setMajor("BBBB"); student2.setSex("B"); student2.setContactWay("BB"); Student student3 = new Student(); student3.setStuId(3); student3.setName("CCC"); student3.setMajor("CCCC"); student3.setSex("C"); student3.setContactWay("CC"); //A、 增加一个学生记录 StuMis.add(student); StuMis.add(student2); StuMis.add(student3); //B、 删除一个学生记录 StuMis.remove(student2); //C、 修改学生信息 student.setMajor("DDDD"); StuMis.update(student); //D、 根据学号查找学生 Student studentXX = StuMis.queryByStuId(3); //E、 根据姓名查找学生。。。 List studentOO = StuMis.queryByName("AAA"); //F、 将集合中所有学生信息存储到student.dat中。 StuMis.saveToFile(); //G、 再次运行系统时加载student.dat中的学生信息,后支持A~E基本操作。 StuMis.readFromFile(); }}