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

📄 fileopener.java

📁 exam system for all developers
💻 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 + -