📄 bitencodedfileslist.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 + -