java files

package rebecca.e.util.io;
 
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
 
public class FilePacker {
            /// Save FileData from memory to File
	public void String2File(String f, String data, boolean b)
			throws IOException {
		// TODO Auto-generated method stub
		if (b)
			System.out.println("Writing: " + f);
		FileOutputStream fos = new FileOutputStream(f);
		fos.write(data.getBytes());
		fos.flush();
		fos.close();
 
	}
 
	void printfile(String p, File f) {
		System.out.println(p + f.getName() + ":" + f.getData());
		// this.Attributes.get(i)
	}
 
	void printfolder(String p, Dir d) {
		print0(p, d);
	}
            /// Print loaded folder tree
	public void print(Dir d) {
		this.print0(" ", d);
		// TODO Auto-generated method stub
 
	}
            /// Print loaded file
	public void print(File f) {
		this.printfile(" ", f);
		// TODO Auto-generated method stub
 
	}
 
	void print0(String p, Dir d) {
		System.out.println(p + " ");
		for (int i = 0; i < d.getFolder().size(); i++) {
			this.printfolder(p + "   ", d.getFolder().get(i));
 
		}
 
		for (int i = 0; i < d.getFile().size(); i++) {
			this.printfile(p + " ", d.getFile().get(i));
		}
 
		// // TODO Auto-generated method stub
		// String t0 = p + t + "\n";
		// t0 = t0 + p + "";
		// for (int i = 0; i < this.Attributes.size(); i++) {
		// t0 = t0 + p + Attributes.getKey(i) + ":" + this.Attributes.get(i)
		// + "\n";
		//
		// }
		// for (int i = 0; i < this.SubNodes.size(); i++) {
		// print0(" " + p, SubNodes.get(i).toString());
		//
		// }
		//
		// return t0;
	}
            /// Load file to memory (String)
	public String File2String(String f, boolean b) throws IOException {
		// TODO Auto-generated method stub
		FileInputStream fstream;
		DataInputStream in;
		int bb;
		fstream = new FileInputStream(f);
		in = new DataInputStream(fstream);
 
		ByteArrayOutputStream out = new ByteArrayOutputStream();
 
		if (b) {
			System.out.println("Reading: " + f);
		}
		while ((bb = in.read()) != -1) {
 
			out.write(bb);
 
		}
		String s = out.toString();
 
		out.close();// -Djava.security.policy=C:/rmi.plc
		in.close();
		fstream.close();
 
		return s;
	}
            /// Platform-independent File (Dir) separator
	public static String iV = System.getProperty("file.separator");
 
           ///Archiving
	public void addFile2Dir(Dir D, String filePath, boolean b)
			throws IOException {
		java.io.File f = new java.io.File(filePath);
		if (f.isFile()) {
			File F = new File();
			F.setName(f.getName());
			F.setData(this.File2String(filePath, true));
			// F.setData("some data");
			D.getFile().add(F);
		}
		if (f.isDirectory()) {
			Dir Dr = new Dir();
			Dr.setName(f.getName());
 
			String[] l = f.list();
 
			for (int i = 0; i < l.length; i++) {
				this.addFile2Dir(Dr, filePath + iV + l[i], b);
			}
			D.getFolder().add(Dr);
		}
	}
           ///Extracting
	public void ExtractToFolder(Dir d, String Dir, boolean b)
			throws IOException {
 
		mkDir(Dir, b);
 
		List l = d.getFile();
		for (int i = 0; i < l.size(); i++) {
			File f = l.get(i);
			String name = f.getName();
			String data = f.getData();
 
			String2File(Dir + iV + name, data, b);
 
		}
 
		List j = d.getFolder();
		for (int i = 0; i < j.size(); i++) {
			Dir f = j.get(i);
			String name = f.getName();
			mkDir(Dir + iV + name, b);
			ExtractToFolder(f, Dir + iV + name, b);
			// String2File(Dir + iV + name, data, b);
 
		}
 
	}
 
	private void mkDir(String Dir, boolean b) {
		// TODO Auto-generated method stub
 
		if (b)
			System.out.println("Creating: " + Dir);
 
		if (!new java.io.File(Dir).mkdir()) {
			if (b)
				System.out.println("Unable to create folder: " + Dir + " "
						+ "(Already exist?)");
 
		}
 
	}
 
}

Leave a comment

Your comment