📄 fileopener.java
字号:
import java.awt.event.*;
import java.applet.*;
import java.net.*;
import java.io.*;
import java.awt.*;
import java.util.*;
class FileOpener{
Vector v = new Vector();
URL uTextHome;
URL myURL;
public Vector openFile(String sFileName){
try{
// InputStream is;
//Toolkit tool = Toolkit.getDefaultToolkit();
//is = getClass().getResourceAsStream(MyFileName);
//fr=(FileReader) myURL.getContent();
//FileReader fr = new FileReader(sFileName);
InputStream in;
InputStreamReader isr;
BufferedReader br;
URLConnection conn;
//put in sFileName here
URL uTextHome = new URL(sFileName);
//URL uTextHome = new URL("http://www.software.u-net.com/JXam.txt");
conn = uTextHome.openConnection();
isr =new InputStreamReader( conn.getInputStream() );
br = new BufferedReader(isr);
//uTextHome = new URL("http://www.software.u-net.com/JXam.txt");
//StreamTokenizer st = new StreamTokenizer(uTextHome.openStream());
StreamTokenizer st = new StreamTokenizer(br);
st.eolIsSignificant(true);
ParseQuestion pq = new ParseQuestion();
st.resetSyntax();
st.wordChars('!', '~');
st.wordChars('A', 'Z');
st.wordChars(9,9);
String sToken;
while(!(st.ttype == st.TT_EOF)){
st.nextToken();
sToken = st.sval;
String sQuestionText="";
if (sToken== null)
sToken="";
NextQuestion:
if(sToken.equals("Question#") )
{
st.nextToken();
while(true){
if(st.ttype ==st.TT_WORD)
{
sToken = st.sval;
char c;
c = sToken.charAt(0);
if(c =='\t'){
//If the token ends with a tab
sToken = "Tab#" + sToken ;
}
c=sToken.charAt(sToken.length()-1);
if(c=='\t'){
sToken=sToken+"Tab#";
}
sQuestionText+= " " +sToken;
}
if(st.ttype == st.TT_EOL)
{
sToken = "Return#";
sQuestionText+= " " +sToken;
}
if(sToken.equals("End#")){
String[] saRows;
saRows = pq.doParse(sQuestionText);
//Question q = new Question();
v.addElement(saRows);
saRows = (String[]) v.elementAt(0);
break NextQuestion;
}
st.nextToken();
}
}
}
}catch (FileNotFoundException fne) {
System.out.println(fne);
System.out.println("File Not Found");
}catch(MalformedURLException mue) {
System.out.println(mue);
}
catch (IOException ioe) {
System.out.println(ioe);
}
return v;
}
public String nullToSpace(String s){
if (s==null){
s="";
}
return s;
}
}
class ParseQuestion{
public String[] doParse(String s){
StringTokenizer st = new StringTokenizer(s);
String sToken="";
String sQuestion="";
String sAnswer = "";
String sOption="";
//Make a dubious assumption that there will
//never be more than six options
String[] saRows = new String[7];
int iLineNo= 0;;
//Until we get to the answer it must
//be part of the question
while(!sToken.equals("Answer#")) {
if(sToken.equals("Tab#")){
sQuestion=sQuestion + " \t ";
//sQuestion=sQuestion + "Tab#";
} else
if(sToken.equals("Return#"))
{
sToken= "\012";
sQuestion = sQuestion + " " +sToken;
}
else
{
sQuestion = sQuestion + " " +sToken;
}
sToken = st.nextToken();
}
saRows[iLineNo]=sQuestion;
iLineNo++;
//Chop off the leading Answer#
sToken = st.nextToken();
while(!sToken.equals("Opt#")) {
//All answers will fit on one line
if(sToken.equals("Return#")){
sToken="";
sAnswer = sAnswer + " " +sToken;
}else
{
sAnswer = sAnswer + " " +sToken;
sToken = st.nextToken();
}
//Chop off the spaces added in place of the Return#
sAnswer= sAnswer.trim();
}
saRows[iLineNo]=sAnswer;
iLineNo++;
while(st.hasMoreTokens()){
sToken=st.nextToken();
while(!sToken.equals("Opt#") && st.hasMoreTokens()&& !sToken.equals("Answer#")) {
if(sToken.equals("Return#")){
sToken= "";
sOption = sOption + " " +sToken;
}else
{
sOption = sOption + " " +sToken;
sToken = st.nextToken();
}
}
saRows[iLineNo]=sOption;
iLineNo++;
sOption="";
}
return saRows;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -