ext2test.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 90 行

JAVA
90
字号
/*
 * $Id: Ext2Test.java,v 1.3 2003/12/26 08:11:04 epr Exp $
 */
package org.jnode.fs.ext2.test;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;

import org.jnode.driver.block.FileDevice;
import org.jnode.fs.FSDirectory;
import org.jnode.fs.FSEntry;
import org.jnode.fs.FSFile;
import org.jnode.fs.FileSystemException;
import org.jnode.fs.ext2.Ext2FileSystem;

/**
 * Ext2 fs test, reads a disk image
 * to be run outside of JNode
 * 
 * @author Andras Nagy
 */
public class Ext2Test {
	
	public Ext2Test() {
		//read the disk image of an ext2fs partition
		File partImg = new File("/home/blind/java/jnode/ext2/ext2.img");
		Ext2FileSystem ext2fs=null;
		
		//FileDevice implements BlockDeviceAPI
		FileDevice fd = null;
		try {
			fd = new FileDevice(partImg, "r");
		} catch (IOException e){
			System.out.println("error when reading disk image");
			System.exit(-1);
		}
		
		try{
			ext2fs = new Ext2FileSystem(fd);
		} catch (FileSystemException e) {
			System.out.println("error when constructing Ext2FileSystem");
			e.printStackTrace();
			System.exit(-1);
		}
		
		try{
			FSDirectory root = ext2fs.getRootEntry().getDirectory();
			System.out.println("getRootEntry().isDirectory(): "+ext2fs.getRootEntry().isDirectory());
			System.out.println("getRootEntry().isFile(): "+ext2fs.getRootEntry().isFile());

			Iterator rootIterator = root.iterator();
			while(rootIterator.hasNext()) {
				FSEntry entry=(FSEntry)rootIterator.next();
				System.out.println(entry.getName());
				//if the entry is a file, print its first 80 characters
				/*
				if(entry.isFile()) {
					FSFile file = entry.getFile();
					byte[] data = new byte[80];
					file.read(0, data, 0, data.length);
					StringBuffer buf=new StringBuffer(data.length);
					for(int i=0; i<data.length; i++) 
						buf.append((char)data[i]);
					System.err.println(buf.toString());
				}*/
				//print one file
				if(entry.getName().equals("xfonts")) {
					FSFile file = entry.getFile();
					byte data[]=new byte[(int)file.getLength()];
					file.read(0, data, 0, data.length);
					StringBuffer buf=new StringBuffer(data.length);
					for(int i=0; i<data.length; i++) 
						buf.append((char)data[i]);
					System.out.println(buf.toString());
				}
			}
		}catch(IOException e) {
			System.out.println("error when parsing root directory");
			e.printStackTrace();
			System.exit(-1);
		}			
	}
	
	public static void main(String[] args) {
		new Ext2Test();
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?