帖原码,大家批评。

原创 2007年10月07日 22:55:00

做了一个简单的二进制文件转换工具,没什么实现功能,只为玩玩。路过的高手帮瞧瞧,里面有很多写得不地道的,请批评。

 

详细开发文档

[项目名称] 

二进制文件转换工具。

[开发者]   

Jakar

[开发时间]  

2007-10-62007-10-7

[功能简单描述]

通过设定路置,把一个二进制文件从一个地方转换到另一个地方,并通过修改后缀来改变文件的格式。

在输入目录时,下方的text框会显示当前输入目录下的文件名,并通过滤器,留下以输入文件名开始的那些文件。

增加转换为html功能,只是把所有东西放到html<body>里面,使其可以在浏览器中打开。

[应用技术]

       主要通过java.IO来实现。界面是用java.ui来做的。

[工程组成]

       ChangeForm.java。写入写出的实现文件。

       ChangeFormFrame.java 界面。

       DirFilter.java 文件名过滤器,在这里实现了以输入内容开头的匹配。

       DirLister.java 通过指定路径,列出路径下所有文件,也可能通过过滤留下想要的。

[可扩展内容]

1.       输入路径更智能化,当按下回车时下方列出的第一个文件会自己动上去,还可以实现autocomplete.

2.       加入文件选择框,方便windows用户使用。

3.       增加文件类型过滤(可通过过滤后缀实现)。

4.       增加实用功能,具体现在没想到。

 

package com.fenet.changeform;

import java.io.*;

/**
 * 处理转换的主文件。
 *
 * 
@author Jakar
 * 
@version 1.00 07/10/04
 
*/
public class ChangeForm{
    
public static void Change(String oldFile,String newFile){
        
try{
            BufferedReader in
=new BufferedReader(new FileReader(oldFile));
            PrintWriter out
=new PrintWriter(new BufferedWriter(new FileWriter(newFile)));
            String s
=new String();
            
while((s=in.readLine())!=null){
                s.replace(
'/','/');//windows的路径是用表示,要转为/
                out.println(s);
            }
            out.close();
        }
catch(Exception e){
            e.printStackTrace();
        }
    }
    
    
public static void ChangeToHTML(String oldFile,String newFile){
        
try{
            BufferedReader in
=new BufferedReader(new FileReader(oldFile));
            PrintWriter out
=new PrintWriter(new BufferedWriter(new FileWriter(newFile)));
            
int lineCount=1;
            String s
=new String();
            out.println(
"<html>");
            out.println(
"<body>");
            
while((s=in.readLine())!=null){
                s.replace(
'/','/');
                out.println(s
+"<br>");
            }
            out.println(
"</body>");
            out.println(
"</html>");
            out.close();
        }
catch(Exception e){
            e.printStackTrace();
        }
    }
    
    
public static void main(String[] args){
        
        ChangeFormFrame frame 
= new ChangeFormFrame();
        
// Show frame
        frame.setVisible(true);
        
//ChangeForm.Change("F:/JCreator/MyProjects/ChangeForm/src/DirFilter.java","C:/Documents and Settings/Wenney/桌面/DirFilter.html");
    }
    
}

 

package com.fenet.changeform;

import java.awt.*;
import java.awt.event.*;
import com.fenet.changeform.ChangeForm;
import com.fenet.changeform.DirLister;

/** *//**
 * Frame
 *
 * 
@author Jakar
 * 
@version 1.00 07/10/04
 
*/

public class ChangeFormFrame extends Frame ...{
    
private Panel northPanel;
    
private Panel mainPanel;
    
private Panel southPanel;
    
private Label oldFileLabel;
    
private Label newFileLabel;
    
private TextArea oldFile;
    
private TextArea newFile;
    
private TextField oldFilePath;
    
private TextField newFilePath;
    
private Button change;
    
private Button changeToHTML;
    
/** *//**
     * The constructor.
     
*/
  
     
public ChangeFormFrame() ...{
         
         oldFileLabel
=new Label("输入原文件完整地址:");
         oldFilePath
=new TextField();
        
         oldFile
=new TextArea();
         
//增加text框的listener,当出现"/"自己动列出其目录下的文件名。
         
//最后一个"/"后面的内容为过滤的条件。
         class TextHandler1 implements TextListener...{
            
public void textValueChanged(TextEvent e) ...{
                String s
=oldFilePath.getText();
                String s1
=new String();
                String s2
=new String();
                
if(s.lastIndexOf("/")!=-1)...{
                    s1
=s.substring(0,s.lastIndexOf("/"));
                    s2
=s.substring(s.lastIndexOf("/")+1,s.length());
                }

                 
if(!s1.equals(""))...{
                     
if(s2.equals(""))
                         oldFile.setText(DirLister.getFiles(s1));
                     
else
                         oldFile.setText(DirLister.getFiles(s1,s2));
                 }
    
            }

        }

        oldFilePath.addTextListener(
new TextHandler1());
         
         
         northPanel
=new Panel();
        northPanel.setLayout(
new BorderLayout());
        northPanel.add(oldFileLabel,BorderLayout.NORTH);
        northPanel.add(oldFilePath,BorderLayout.CENTER);
        northPanel.add(oldFile,BorderLayout.SOUTH);         
         
         newFileLabel
=new Label("输入转换文件完整地址及文件名:");
         newFilePath
=new TextField("C:/Documents and Settings/Wenney/桌面/");
         newFile
=new TextArea();
         newFile.setText(DirLister.getFiles(
"C:/Documents and Settings/Wenney/桌面/"));
         
//增加text框的listener,当出现"/"自己动列出其目录下的文件名。
         
//最后一个"/"后面的内容为过滤的条件。
         class TextHandler2 implements TextListener...{
            
public void textValueChanged(TextEvent e) ...{
                String s
=newFilePath.getText();
                String s1
=new String();
                String s2
=new String();
                
if(s.lastIndexOf("/")!=-1)...{
                    s1
=s.substring(0,s.lastIndexOf("/"));
                    s2
=s.substring(s.lastIndexOf("/")+1,s.length());
                }

                 
if(!s1.equals(""))...{
                     
if(s2.equals(""))
                         newFile.setText(DirLister.getFiles(s1));
                     
else
                         newFile.setText(DirLister.getFiles(s1,s2));
                 }
    
            }

        }

         newFilePath.addTextListener(
new TextHandler2());
         
         southPanel
=new Panel();
        southPanel.setLayout(
new BorderLayout());
        southPanel.add(newFileLabel,BorderLayout.NORTH);
        southPanel.add(newFilePath,BorderLayout.CENTER);
        southPanel.add(newFile,BorderLayout.SOUTH);
         
         change
=new Button("格式转换");
         
class ButtonHandler1 implements ActionListener ...{
            
public void actionPerformed(ActionEvent e) ...{
                ChangeForm.Change(oldFilePath.getText(),newFilePath.getText());
            }

        }

         change.addActionListener(
new ButtonHandler1());
         changeToHTML
=new Button("转换为HTML");
         
class ButtonHandler2 implements ActionListener ...{
            
public void actionPerformed(ActionEvent e) ...{
                ChangeForm.ChangeToHTML(oldFilePath.getText(),newFilePath.getText());
            }

        }

        changeToHTML.addActionListener(
new ButtonHandler2());
        
         
         
         mainPanel
=new Panel();
        mainPanel.setBackground(Color.darkGray);
        mainPanel.add(change);
        mainPanel.add(changeToHTML);

        
        setTitle(
"二进制文件转换工具");
        
        
// Add window listener.
        this.addWindowListener
        (
            
new WindowAdapter() ...{
                
public void windowClosing(WindowEvent e) ...{
                    ChangeFormFrame.
this.windowClosed();
                }

            }

        ); 
        
this.setLayout(new BorderLayout());
        
this.add(northPanel,BorderLayout.NORTH);
        
this.add(mainPanel,BorderLayout.CENTER);
        
this.add(southPanel,BorderLayout.SOUTH);
        
this.pack();
         
   
    
}

    
    
    
/** *//**
     * Shutdown procedure when run as an application.
     
*/

    
protected void windowClosed() ...{       
        
// Exit application.
        System.exit(0);
    }

}




 

package com.fenet.changeform;

import java.io.*;
import java.util.*;
import java.util.regex.*;

/** *//**
 * 目录过滤器。
 * 过滤剩下以给出的以reg开头的文件。
 * 本来是通过正则表达式过滤的,没有成功,只好用字符串的函数。
 *
 * 
@author Jakar
 * 
@version 1.00 07/10/04
 
*/

public class DirFilter implements FilenameFilter...{
//    private Pattern pattern;
    private String s=new String();
    
    
/** *//**
     * constructor
     * to get the Starting of the Filename.
     
*/

    
public DirFilter(String reg)...{
    
//    pattern=Pattern.compile(reg.concat("*"));
        s=reg;
    }

    
    
/** *//**
     * implements from the FilenameFilter interface.
     * set the statment to filt the filename.
     
*/

    
public boolean accept(File dir,String name)...{
    
//    return pattern.matcher(new File(name).getName()).matches();
        return new File(name).getName().startsWith(s);
    }

}

 

package com.fenet.changeform;

import java.io.*;
import java.util.*;
import java.util.regex.*;
import com.fenet.changeform.DirFilter;
import com.fenet.changeform.JavaToTxt;

/** *//**
 * 目录列举器。
 * 工具类,提供getFiles方法,获得文件名列表。
 *
 * 
@author Jakar
 * 
@version 1.00 07/10/04
 
*/

public class DirLister...{
    
/** *//**
     * 默认当前目录,无过滤。在本工具中没应用,预备扩展。
     
*/

    
public static String getFiles()...{
        
return DirLister.getFiles(".","");
    }

    
    
/** *//**
     * 设置目录,无过滤。在本工具中没应用,预备扩展。
     
*/

    
public static String getFiles(String filePath)...{
        
return DirLister.getFiles(filePath,"");
    }

    
    
/** *//**
     * 返回一个字符串,列举了filePath给定的目录下,以reg开头的文件名。
     
*/

    
public static String getFiles(String filePath,String reg)...{
        StringBuffer sb
=new StringBuffer();
        
try...{
            File path
=new File(filePath);
            String list[];
            
if(reg.equals(""))...{
                list
=path.list();
            }

            
else...{
                list
=path.list(new DirFilter(reg));
            }

            
for(int i=0;i<list.length;i++)...{
                sb.append(list[i]);
                sb.append(
' ');
            }

            
return new String(sb);
        }
catch(Exception e)...{
        
//    e.printStackTrace();
            return new String("目录不存在 "+e.getMessage());
        }

    }

}



PHP+HTML简单实现BBS论坛与回帖

本文主要讲述如何通过PHP+HTML简单实现BBS论坛和发帖/回帖的功能,这是提取我们php项目的部分内容。主要内容包括:         1.通过JavaScript和Iframe实现局部布局界面 ...
  • Eastmount
  • Eastmount
  • 2015年03月14日 16:12
  • 9707

discuz批量发帖工具

1. 创建一个mysql数据库 crawler,创建一个采集文章表articles: CREATE TABLE `articles` ( `id` int(11) NOT NULL AUTO_...
  • Monkeycn
  • Monkeycn
  • 2015年12月17日 15:28
  • 2343

华为机试——01选秀节目评分

/* 1、选秀节目打分,分为专家评委和大众评委,score[]数组里面存储每个评委打的分数, judge_type[] 里存储与 score[] 数组对应的评委类别,judge_type[i] ==...
  • xiaofei2010
  • xiaofei2010
  • 2013年08月09日 19:58
  • 2880

GRBL V1.1F原码 可DIY CNC系统

  • 2018年01月15日 21:05
  • 296KB
  • 下载

并网3-5KW原码(28035芯片)

  • 2017年10月31日 20:46
  • 607KB
  • 下载

组原课设-加减交替法定点原码一位除法器设计

  • 2017年07月19日 14:29
  • 946KB
  • 下载

EA原码学习用

  • 2012年11月26日 13:10
  • 44KB
  • 下载

定点原码一位除法器-组成原理课设

  • 2012年04月27日 14:15
  • 421KB
  • 下载

entity framework learning guide原码2

  • 2012年04月01日 10:54
  • 1.66MB
  • 下载

一个计算器原码文件

  • 2013年06月15日 21:24
  • 325KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:帖原码,大家批评。
举报原因:
原因补充:

(最多只允许输入30个字)