Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/*
* Created on 26.12.2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class Main {
public static void main(String[] args) {
new Main().doIt();
}
/**
*
*/
private void doIt() {
// TODO Auto-generated method stub
File file = new File("c://stub.log"); //hier Deine Datei angeben
FileReader fr = null;
try {
fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
fr.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
PS der eingelesene Text soll am Ende in eine Crossreferenz umgewandelt werden !
import java.io.BufferedReader;
import java.io.File;
import java.util.Arrays;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.StringTokenizer;
/*
* Created on 27.12.2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class CrossMain {
public static void main(String[] args) {
new CrossMain().doIt();
}
/**
*
*/
private void doIt() {
// TODO Auto-generated method stub
//Da wir jedes Wort nur einmal speichern wollen
verwenden wir eineHashtable die für das jeweilige Wort auf unsere MyEntry Objekte abbildet.
Hashtable ht = new Hashtable();
File file = new File("c://Test.txt");
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader(file);
br = new BufferedReader(fr);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Die Zeile
String line = null;
Der StringTokenizer zerlegt uns den String in die einzelnen Wörter
StringTokenizer tokenizer = null;
//Hier mit sehen wir in welcher Zeile wir stehen
int lineCnt = 0;
try {
while ((line = br.readLine()) != null) {
lineCnt++;
tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreElements()) {
String tmp = tokenizer.nextToken();
//ist das gefundene Wort schon in der Hashtable gespeichert?
//wenn ja, besorge dir das MyEntry Objekt zu dem Begriff und füge ein Element zu dem Zeilen (Rows) Speicher hinzu ... -> CrossReferenz
//Ist das Wort noch nicht in der HT, dann erstell ein Neues MyEntry Objekt,welches die Worte Kapselt und schreibe die Aktuelle Zeile in den Zeilenspeicher des MyEntry Objektes danach schreib Wert in die HT ...
if (!ht.contains(tmp)) {
MyEntry entry = new MyEntry(tmp);
entry.getRows().add(new Integer(lineCnt));
ht.put(tmp, entry);
} else {
MyEntry entry = (MyEntry) ht.get(tmp);
entry.getRows().add(new Integer(lineCnt));
}
}
}
br.close();
fr.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Iterator iter = ht.keySet().iterator();
//Hier geben wir die Wörter und die dazu gehörigen zeilen Positionen aus ...
while (iter.hasNext()) {
String key = (String) iter.next();
MyEntry entry = (MyEntry) ht.get(key);
System.out.println("Wort: " + entry.getStr());
Object[] oa = entry.getRows().toArray();
Arrays.sort(oa);
for (int i = 0; i < oa.length; i++) {
System.out.println(" " + ((Integer) oa[i]).intValue());
}
}
}
//Die Klasse MyEntry Kapselt für uns die "Wörter" und hat einen Speicher für die ZeilenNr. da es vorkommen kann, das ein wort in einer Zeile zweimal vorkommt verwenden wir zum Speichern der zeilen angaben einen Hashset die eine Menge
//im Mathematischen Sinn repräsentiert wobei ein element nur einmal erscheinen kann...
class MyEntry {
private String str;
private HashSet rows;
public String toString() {
return str;
}
/**
* @param tmp
*/
public MyEntry(String tmp) {
str = tmp;
rows = new HashSet();
// TODO Auto-generated constructor stub
}
public boolean equals(Object o) {
return str.equals((String) o);
}
//diese Methode ist wichtig für das richtige Funktionieren unserer Hashtable ...
public int hashCode() {
return str.hashCode();
}
/**
* @return
*/
public HashSet getRows() {
return rows;
}
/**
* @return
*/
public String getStr() {
return str;
}
/**
* @param list
*/
public void setRows(HashSet set) {
rows = set;
}
/**
* @param string
*/
public void setStr(String string) {
str = string;
}
}
}