⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readdata.java

📁 数据挖掘算法的实现
💻 JAVA
字号:
import java.awt.Button;
import java.awt.Font;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class ReadData 
{
	private JFrame f;
	private MenuBar mb;
	private Menu mSystem,mGuide,mHelp,mIntroduce;
	private MenuItem mIDSIntroduce,mArithmetic,mExit,mFunction,mHowToUse,mAbout;
	private Button mReadDataButton,mNextButton;	
	private TextArea mOutput;
	
	private LinkedList stringlist = new LinkedList();
    public  String readFileName;
    public  static int number;
    public static int noSameNumber = 0;
    public  static Data []dataArray = new Data[600000];

	public ReadData() throws IOException
    {
		number =DealData.num;
		readFileName =DealData.fileDestination;
		
		f = new JFrame("入侵检测系统 谢松林 ");
		mb = new MenuBar();
		mSystem = new Menu("系统");
		mGuide = new Menu("指南");
		mHelp = new Menu("帮助");
		mIntroduce = new Menu("简介");
		
		mExit = new MenuItem("退出");
		mIDSIntroduce = new MenuItem("IDS简介");
		mArithmetic = new MenuItem("算法简介");
		mFunction = new MenuItem("功能指南");
		mHowToUse = new MenuItem("使用指南");
		mAbout = new MenuItem("关于");
		
		mExit.addActionListener(new MenuActionController());
		mIDSIntroduce.addActionListener(new MenuActionController());
		mArithmetic.addActionListener(new MenuActionController());
		mFunction.addActionListener(new MenuActionController());
		mHowToUse.addActionListener(new MenuActionController());
		mHowToUse.addActionListener(new MenuActionController());
		mAbout.addActionListener(new MenuActionController());
	
		f.setLayout(null);
		f.setMenuBar(mb);
		mb.add(mSystem);
		mb.add(mGuide);
		//mb.setHelpMenu(mHelp);
		mb.add(mHelp);
	
		mSystem.add(mIntroduce);
		mIntroduce.add(mIDSIntroduce);
		mIntroduce.add(mArithmetic);
		mSystem.add(mExit);
		mSystem.addSeparator();
		
		mGuide.add(mFunction);
		mGuide.add(mHowToUse);
		mGuide.addSeparator();
		
		mHelp.add(mAbout);
		mHelp.addSeparator();
				
	    mReadDataButton = new Button("读取数据");
	    mReadDataButton.setFont(new Font("Simsun",Font.PLAIN,20));
	    mReadDataButton.addActionListener(new MenuActionController());
        mReadDataButton.setBounds(10,310,150,50);
	    f.add(mReadDataButton);
	    
	    mNextButton = new Button("下一步");
	    mNextButton.setName("下一步");
	    mNextButton.setFont(new Font("Simsun",Font.PLAIN,20));
	    mNextButton.addActionListener(new MenuActionController());
	    mNextButton.setBounds(260,310,100,50);
	    f.add(mNextButton);
	    
	    mOutput = new TextArea("相关信息输出区\n");
	    mOutput.setBounds(0,0,400,300);
	    f.add(mOutput);
	    
		f.setSize(400,450);
		f.setLocation(200,200);
		f.setVisible(true);
				
		f.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(1);
			}
		});
		
     }
    public void Read() throws IOException
    {
    	File file = new File(readFileName);
    	FileReader fr = new FileReader(file);
        char c [] = new char[1];
        int size = (int) file.length();
        StringBuffer buffer = new StringBuffer(); 
        char temp = '\n';
        int j = 0;
        for(int i = 0;i < size;i++)
        {
        	int flag = fr.read(c);
        	if((c[0] == temp) || (flag == -1))
        	{
                if(j == 0)
                {
            		stringlist.add(buffer.toString());
                	dataArray[0] = new Data(buffer.toString());
                	noSameNumber++;
                }
                else
                {
                	if(!stringlist.contains(buffer.toString()))
                	{
              		  stringlist.add(buffer.toString());
              		 dataArray[noSameNumber] = new Data(buffer.toString());
              		 noSameNumber++;
                	}
                }
         		buffer = new StringBuffer();
        		j++;
        	}
        	else
        		buffer.append(c[0]);       	
        }
        fr.close();
        System.out.println("不一样的数据一共有"+noSameNumber+"条");
        mOutput.append("不一样的数据一共有"+noSameNumber+"条");
        
        int normalNumber = 0;
        for(int i = 0;i < noSameNumber;i++)
        {
        	if(dataArray[i].type.startsWith("normal"))
        		normalNumber++;
        }
        System.out.println("正常数据一共有"+normalNumber+"条\n");
        mOutput.append("正常的数据一共有"+normalNumber+"条\n");
        int attackNumber = noSameNumber - normalNumber;
        System.out.println("不正常的数据一共有"+attackNumber+"条\n");
        mOutput.append("不正常的数据一共有"+attackNumber+"条\n");
    }
    public boolean ExitInDataArray(Data []d,int m,Data newdata)  //是否存在
    {
   	 boolean flag = true;
   	 for(int i = 0;i < m;i++)
   	 {
   		 if((d[i].type).equals(newdata.type))
   		 {
   			 for(int j = 0;j < DealData.attribute;j++)
   			 {
   				 if(d[i].data[j] != newdata.data[j])
   				 {
   					 flag = false;
   					 return flag;
   				 }
   			 }
   		 }
   	 }
   	 return flag;
    }

	private class MenuActionController implements ActionListener
	{
		public MenuActionController()
		{
			
		}
		
		public void actionPerformed(ActionEvent e) 
		{ 
			String label = e.getActionCommand();
			if (label.equals("IDS简介"))
			{
				IDSIntroduceFace iif = new IDSIntroduceFace(); 
			}
			else if (label.equals("算法简介"))
			{
				ArithmeticFace af = new ArithmeticFace();
			}
			else if (label.equals("退出"))
			{
				System.exit(1);
			}
			else if (label.equals("功能指南"))
			{
				FunctionFace ff = new FunctionFace();
			}
			else if (label.equals("使用指南"))
			{
				UseFace uf = new UseFace();
			}
			else if (label.equals("关于"))
			{
				AboutFace abf = new AboutFace();
			}
			else if (label.equals("读取数据"))
			{
                try {
					Read();               	
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				System.out.println("读取数据完毕!");
				mOutput.append("读取数据完毕!");
			}
			else if(label.equals("下一步"))
			{
				System.out.println("开始对数据进行聚类");
				mOutput.append("开始对数据进行聚类");
				f.dispose();
				DataClustering dc = new DataClustering();
			}
		}
	}
}

⌨️ 快捷键说明

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