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

📄 bitencodedfileslist.java

📁 Generate all XPaths for a group of XML Files.
💻 JAVA
字号:
import java.io.*;
import java.util.ArrayList;
import java.util.BitSet;

/**
 * @author Michal
 *
 */
public class BitEncodedFilesList 
{
	static int index;
	private ArrayList<BitEncodedFileInfo> bitEncodedFilesList;

	public BitEncodedFilesList() 
	{
		index=0;
		bitEncodedFilesList = new ArrayList<BitEncodedFileInfo>();
	}
	public int AddNewFileInfo(String fileName, int bitTableLength)
	{
		BitEncodedFileInfo newEncodedFileInfo = new BitEncodedFileInfo(fileName, index);
		bitEncodedFilesList.add(index, newEncodedFileInfo);
		index++;
		return (index-1);
	}
	public void AddNewFileInfo(BitEncodedFileInfo newBEFI)
	{
		bitEncodedFilesList.add(newBEFI);
	}
	public void SetBitForFile(int elIndex, short bitValue, int bitToSet)
	{
		BitEncodedFileInfo tempFileInfo = bitEncodedFilesList.get(elIndex);
		tempFileInfo.SetBit(bitToSet);
		bitEncodedFilesList.set(elIndex, tempFileInfo);
	}
	public void PrintFilesInfo()
	{
		for (int i =0;i<bitEncodedFilesList.size();i++)
			System.out.println(bitEncodedFilesList.get(i).print());
	}
	public void SaveToFile() throws IOException
	{
		File output = new File("C:\\all.txt");
		FileWriter fw = new FileWriter(output);
		int i;
		for (i=0;i<bitEncodedFilesList.size();i++)
		try 
		{
			fw.write(bitEncodedFilesList.get(i).print()+"\n");
		} 
		catch (IOException e) 
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		fw.close();
		System.out.println(i + " XML Documents Found. (Files list in c:\\all.txt)");	
	}
	void CreateDistanceMatrix() throws IOException
	{
		int i,j;
		int size = bitEncodedFilesList.size();
		File file = new File("C:\\distMatrix.dat");
		try 
		{
			// Create an output stream to the file.
		    FileOutputStream file_output = new FileOutputStream (file);
		    // Wrap the FileOutputStream with a DataOutputStream
		    DataOutputStream data_out = new DataOutputStream (file_output);
			
		    for (i=0;i<size;i++)
		    {			
		    	if (i==(int)(size/4))
		    		System.out.println("1/4 of the distance matrix created.");
		    	else if (i==(int)(size/2))
		    		System.out.println("1/2 of the distance matrix created.");
		    	else if (i==(int)(size*0.75))
		    		System.out.println("3/4 of the distance matrix created.");
		    	float iCountOnes = bitEncodedFilesList.get(i).GetBits().cardinality();
		    	for (j=0;j<size-i;j++)
		    	{
		    		//not the same objects
		    		if(i!=j)
		    		{	
		    			float jCountOnes = bitEncodedFilesList.get(j).GetBits().cardinality();
		    			BitSet result = bitEncodedFilesList.get(i).GetBits();
		    			result.and(bitEncodedFilesList.get(j).GetBits());
		    			if (iCountOnes>=jCountOnes)
		    				data_out.writeFloat(1-(result.cardinality()/iCountOnes)); //distMatrix[i][j] = 1-(result.cardinality()/iCountOnes);
		    			else
		    				data_out.writeFloat(1-(result.cardinality()/jCountOnes)); //distMatrix[i][j] = 1-(result.cardinality()/jCountOnes);
		    		}
		    	}			
		    }
		    file_output.close ();
		}//try
		catch (IOException e) 
		{
			System.out.println ("IO exception = " + e );
		}
		//Print out the results
		/*for (i=0;i<distMatrix.length;i++)
		{
			System.out.print("("+(i+1) +")");
			for(j=0;j<distMatrix.length;j++)
				System.out.print(distMatrix[i][j]+",");
			System.out.print("\n");
		}*/
		//Save to file
		/*File output = new File("C:\\disMatrix.txt");
		FileWriter fw = new FileWriter(output);
		for (i=0;i<distMatrix.length;i++)
		{
			fw.write("(" + i +  ") ");
			for(j=0;j<distMatrix.length-i;j++)
				fw.write(distMatrix[i][j]+", ");
			fw.write("\n");
		}
		fw.close();	*/
	}
	
	void LoadFromFile()
	{
		File file = new File ("C:\\distMatrix.dat");
		try 
		{
		      // Wrap the FileInputStream with a DataInputStream
		      FileInputStream file_input = new FileInputStream (file);
		      DataInputStream data_in    = new DataInputStream (file_input );

		      while (true) 
		      {
		        try 
		        {
		        	float data = data_in.readFloat();
		        }
		        catch (EOFException eof) 
		        {
		          System.out.println ("End of File");
		          break;
		        }
		      }
		      data_in.close ();
		} 
		catch  (IOException e) 
		    {
		       System.out.println ( "IO Exception =: " + e );
		    }
	}
}

⌨️ 快捷键说明

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