www.pudn.com > htmlsaver.rar > Project.java


import java.util.*; 
import java.io.*; 
 
public class Project 
{ 
  /* the Project Name */ 
  public String prjName; 
  /* URL of main page */ 
  public String mainURL; 
  /* Directory to save */ 
  public String mainDir; 
   
  public boolean sImage; 
  public boolean sScript; 
  public boolean sNullLink; 
   
  public Vector links; 
  public Hashtable names; 
   
  final String NEW_LINE = new String("\n"); 
   
  public Project() 
  { 
    clear(); 
  } 
   
  public Project(String fileName) throws Exception 
  { 
    clear(); 
         
    if (!readFromFile(fileName)) 
      throw new Exception("failed to read project file"); 
  } 
   
  public void write(Writer writer, String s) throws IOException 
  { 
    writer.write(s); 
    writer.write(NEW_LINE); 
  } 
   
  public void write(Writer writer, boolean b) throws IOException 
  { 
    if (b) 
      writer.write("true"); 
    else 
      writer.write("false"); 
    writer.write(NEW_LINE); 
  } 
   
  public boolean saveToFile() 
  { 
    File dir = new File(mainDir); 
    File file = new File(dir, prjName + ".prj"); 
    String fileName = file.getAbsolutePath(); 
     
    return saveToFile(fileName); 
  } 
   
  public boolean saveToFile(String fileName) 
  { 
    try { 
      File file = new File(fileName); 
      if (file.exists()) 
      { 
        file.delete(); 
      } 
      file.createNewFile(); 
      OutputStreamWriter writer = new OutputStreamWriter( 
        new FileOutputStream(file)); 
      write(writer, "Project Name:"); 
      write(writer, prjName); 
      write(writer, "Main URL:"); 
      write(writer, mainURL); 
      write(writer, "Main Directory:"); 
      write(writer, mainDir); 
      write(writer, "Save Image:"); 
      write(writer, sImage); 
      write(writer, "Save Script:"); 
      write(writer, sScript); 
      write(writer, "Save Null Link:"); 
      write(writer, sNullLink); 
      writer.flush(); 
       
      write(writer, Integer.toString(links.size())); 
      for (int i = 0; i < links.size(); i++) 
      { 
        Link link = (Link)links.elementAt(i); 
        write(writer, link.url); 
        write(writer, link.text); 
      } 
      writer.flush(); 
       
      write(writer, Integer.toString(names.size())); 
      Object[] urlName = names.values().toArray(); 
      for (int i = 0; i < urlName.length; i++) 
      { 
        URLName name = (URLName)urlName[i]; 
        write(writer, name.url); 
        write(writer, name.name); 
        write(writer, name.finish); 
      } 
      writer.flush(); 
       
      writer.close(); 
       
      return true; 
    } 
    catch (IOException e) { 
      return false; 
    } 
  } 
   
  public String readString(BufferedReader reader) throws IOException 
  { 
    return reader.readLine(); 
  } 
   
  public boolean readBoolean(BufferedReader reader) throws IOException 
  { 
    if (reader.readLine().equals("true")) 
      return true; 
    else 
      return false; 
  } 
   
  public int readInt(BufferedReader reader) throws IOException 
  { 
    return Integer.parseInt(reader.readLine()); 
  } 
   
  public boolean readFromFile(String fileName) 
  { 
    clear(); 
 
    try { 
      File file = new File(fileName); 
      if (!file.exists()) 
        return false; 
       
      BufferedReader reader = new BufferedReader( 
        new InputStreamReader(new FileInputStream(file))); 
       
      readString(reader); 
      prjName = readString(reader); 
      readString(reader); 
      mainURL = readString(reader); 
      readString(reader); 
      mainDir = readString(reader); 
       
      readString(reader); 
      sImage = readBoolean(reader); 
      readString(reader); 
      sScript = readBoolean(reader); 
      readString(reader); 
      sNullLink = readBoolean(reader); 
       
      int n = readInt(reader); 
      for (int i = 0; i < n; i++) 
      { 
        Link link = new Link(readString(reader), readString(reader)); 
        links.add(link); 
      } 
      n = readInt(reader); 
      for (int i = 0; i < n; i++) 
      { 
        URLName name = new URLName(readString(reader), readString(reader), 
          readBoolean(reader)); 
        names.put(name.url, name); 
      } 
      return true; 
    } 
    catch (IOException e) { 
      return false; 
    } 
  } 
   
  public void clear() 
  { 
    prjName = new String(""); 
    mainURL = new String(""); 
    mainDir = new String(""); 
     
    sImage = false; 
    sScript = true; 
    sNullLink = true; 
 
    links = new Vector(); 
    names = new Hashtable(); 
  } 
   
  public static void main(String[] args) 
  { 
    Project prj = new Project(); 
    prj.readFromFile("f:\\other\\BTB.prj"); 
    //prj.saveToFile("temp.prj"); 
  } 
}