AMADEUS html plain
import java.io.*;
import java.util.*;
import java.net.*;
URI
import java.util.zip.*;
import javax.swing.*;
29.05.2015
public class AlgJavaStarter
//static boolean SIL = true;
static boolean SIL = false;
static boolean isOutOfDateAlgJavaStarter;
static String[] updRida = new String[100];
read failist updateInfo, varuga
static int updN;
tegelik arv; 0 ka siis, kui ei saadud faili kätte
static String currentOsName;
static boolean jar_u_implemented = true;
kasutab modifyPropertiesAndStart()
static boolean pluginPRO = false;
kas programmitehnika ABC nõutud
static String currentDir = System.getProperty("user.dir");
29.05.2015
static String er = System.getProperty("file.separator");
29.05.2015
static StarterProgressBar mainFrame;
29.05.2015
static String title = "AlgJavaStarter vers. 150529 in action";
29.05.2015
main
public static void main(String args[])
System.out.println("--- "+title+". ---");
29.05.2015
* int i = 0; i < args.length; i++
14.06.06
kas mõni argumentidest on z või pro
? args[i].toUpperCase().equals("Z")
jar_u_implemented = false;
? args[i].toUpperCase().equals("PRO")
pluginPRO = true;
//14.06.06
<======
//System.out.println("args[0]: " + args[0]);
String a0 = args[0];
? args[0].toUpperCase().equals("Z")
jar_u_implemented = false;
<======
? args[0].toUpperCase().equals("PRO")
pluginPRO = true;
//29.05.2015 String er = System.getProperty("file.separator");
System.out.println("AlgJavaStarter:user.dir=" +
System.getProperty("user.dir") );
//29.05.2015 String currentDir = System.getProperty("user.dir");
currentOsName = System.getProperty("os.name");
writeLog("CURRENT OS NAME: " + currentOsName );
? currentOsName.contains("Windows")
27.05.2015currentOsName.startsWith("Windows")
currentOsName = "WindowsXP";
<======
? currentOsName.startsWith("Mac")
currentOsName = "Linux";
//
? currentOsName.equals("Windows Vista")
currentOsName = "WindowsXP";
<======
? currentOsName.equals("Windows XP")
currentOsName = "WindowsXP";
<======
? currentOsName.equals("Windows 2003")
currentOsName = "WindowsXP";
<======
? currentOsName.startsWith("Mac")
currentOsName = "Linux";
String jarStarterURL = "http://www.cs.ut.ee/~kiho/Amadeus_AlgJava/AlgJavaStarter.jar";
String jarStarterLocal = currentDir + er + "AlgJavaStarter.jar";
String updInfURL = "http://www.cs.ut.ee/~kiho/Amadeus_AlgJava/updateInfo.txt";
updN = 0;
tegelik arv; 0 ka siis, kui ei saadud faili kätte
lugeda updateInfo
? ! onOlemasURLfail(updInfURL)
writeLog("File " + updInfURL + " not found! Trying: ");
modifyPropertiesAndStart();
<==========
writeLog("READING . . . . " );
updadateInfo ==> updRida[]
!!
URL url = new URL ( updInfURL ) ;
BufferedReader in =
new BufferedReader (
new InputStreamReader ( url . openStream ( ) ) ) ;
String line ;
updN = 0;
..while
* ; ( line = in . readLine ( ) ) != null ;
? line.length() > 0
muidu topib tühjad read vahele
//System . out . println ( "> " + line + "<" ) ;
updRida[updN++] = line;
in . close ( ) ;
..catch
! (MalformedURLException mue)
URL c'tor
System . out . println ( "kopeerida " + updInfURL + " is an invalid URL: " + mue ) ;
updN = 0;
..catch
! (IOException ioe)
Stream constructors
System . out . println ( "kopeeridaURLst: " + "IOException: " + ioe ) ;
updN = 0;
? updN == 0
writeLog("Update info missing. " );
<======
writeLog("OK: File " + updInfURL + " read. " );
kas AlgJavaStarter on aegunud?
isOutOfDateAlgJavaStarter = false;
String ridaAlgJavaStarter = null;
otsida AlgJava.jar rida
* int i = 0; i < updN; i++
? updRida[i].indexOf("|AlgJavaStarter.jar|") != -1
ridaAlgJavaStarter = updRida[i];
<======
? ridaAlgJavaStarter == null
<======
ei tea, kas on aegunud
? ! onOlemasFail(jarStarterLocal)
<======
ei saa olla aegunud
kontrollida aegumist:
String r[] = ridaAlgJavaStarter.split("[|]");
long homeStarterTime = Long.parseLong(r[0]);
long localStarterTime = (new File(jarStarterLocal)).lastModified();
isOutOfDateAlgJavaStarter = homeStarterTime/1000 > localStarterTime/1000;
//SIL
System.out.println(" -----------------------------------------------------");
System.out.println("UUUSAlgJavaStarter:SILUM: homeStaretr,localStarter="+
homeStarterTime + ", " + localStarterTime);
System.out.println("AlgJavaStarter:SILUM: staretr="+jarStarterLocal);
? isOutOfDateAlgJavaStarter
System.out.println("AEGUNUD");
<======
System.out.println("POLE AEGUNUD");
System.out.println(" -----------------------------------------------------");
? isOutOfDateAlgJavaStarter
writeLog("WARNING. Local copy of AlgJavaStarter out of date!" +
"\n\t\tYOU SHOULD DOWNLOAD IT ANEW!");
System.out.println("Press Enter to continue ... ");
!!
(new BufferedReader(new InputStreamReader(System.in))).readLine();
! (IOException e)
writeLog("However, trying: ");
modifyPropertiesAndStart();
<==========
//29.05.2015 Amadeus_AlgJava loomine/värskendamine (viidud meetodisse "teha()")
String kustKaust = "http://www.cs.ut.ee/~kiho/Amadeus_AlgJava/Orig/";
tuuaAmadeus_AlgJavaKuiPoleVõiVananenud(kustKaust, currentDir + er, "Amadeus_AlgJava.jar", true);
kui pole, teha Amadeus.properties
String properties = currentDir + er + "Amadeus.properties";
? onOlemasFail(properties)
writeLog("OK: File " + properties + " exists. Preserved.");
<======
kui pole teeme ise algse omadustefaili
!!
PrintWriter vfail = new PrintWriter(new FileWriter(properties));
? currentOsName.equals("WindowsXP")
vfail.println("AmadeusDirectory= " + topeltLangkriipsud(currentDir));
<======
? currentOsName.equals("Linux") || currentOsName.equals("SunOS")
vfail.println("AmadeusDirectory= " + currentDir);
<======
writeLog("FAILED: Os " + currentOsName + " not supported. ");
writeLog("FAILED: File " + properties + " not created. ");
<======================
vfail.println("locale= EST");
? currentOsName.equals("WindowsXP")
vfail.println("defaultFont= Times New Roman, 1, 14");
<======
? currentOsName.equals("Linux")|| currentOsName.equals("SunOS")
vfail.println("defaultFont= TimesRoman, 1, 14");
vfail.println("myMacros= AltGrMacro AlgJavaMacro Kirillitsa");
vfail.println("startProject= AlgJavaWorks");
? currentOsName.equals("WindowsXP")
vfail.println("defaultOpenDirectory= " + topeltLangkriipsud(currentDir+ "\\") + "Portfolio");
<======
vfail.println("defaultOpenDirectory= " + currentDir+ er + "Portfolio");
vfail.flush();
vfail.close();
writeLog("OK: File " + properties + " created. ");
! (IOException e)
writeLog("FAILED: File " + properties + " not created. ");
<==================
tuua, kui pole või värskendada, kui vaja
kaustad
tehaKuiPole(currentDir + er + "demo" + er);
tehaKuiPole(currentDir + er + "gif" + er);
tehaKuiPole(currentDir + er + "macros" + er);
tehaKuiPole(currentDir + er + "models" + er);
tehaKuiPole(currentDir + er + "Portfolio" + er);
tehaKuiPole(currentDir + er + "temp" + er);
tehaKuiPole(currentDir + er + "workspace" + er);
//System.out.println(" pluginPRO" + pluginPRO);
14.06.07
? pluginPRO
//tehaKuiPole(currentDir + er + "pro" + er);
tehaKuiPole(currentDir + er + "pro" + er + "RUS" + er);
tehaKuiPole(currentDir + er + "pro" + er + "EST" + er);
29.05.2015
tehaKuiPole(currentDir + er + "gif" + er + "pro" + er);
failid
//29.05.2015 viidud meetodisse "teha()"
iga updateInfo.txt rea korral (kui pole AlgJava.jar, Amadeus_AlgJava.jar)
* int i = 0; i < updN; i++
? updRida[i].indexOf("|AlgJavaStarter.jar|") != -1
<------
? updRida[i].indexOf("|Amadeus_AlgJava.jar|") != -1
<------
14.06.07 kui pole PRO siis jäävad vahele ka:
//System.out.println("updRida[i] " + updRida[i] );
//System.out.println("| + currentOsName +-AlgJavaPro.html| " + "|" + currentOsName +"-AlgJavaPro.html|");
? !pluginPRO && (updRida[i].indexOf("|" + currentOsName +"-AlgJavaPro.html|") != -1)
<------
? !pluginPRO && (updRida[i].indexOf("|pro.zip|") != -1)
<------
? !pluginPRO && (updRida[i].indexOf("|gifpro.zip") != -1)
<------
String[] r = updRida[i].split("[|]");;
String kustKaust = "http://math.ut.ee/~kiho/Amadeus_AlgJava/Orig/";
boolean baidid = (r[1].endsWith("jar") || r[1].endsWith("gif") || r[1].endsWith("class") || r[1].endsWith("zip"));
? currentOsName.equals("Linux")
baidid = true;
? r[1].equals(currentOsName + "-AlgJavaWorks.html")
kasutaja muudetut ei muuda
tuuaKuiPole(kustKaust, currentDir + er + r[2] + er, r[1], baidid );
<======
tuuaKuiPoleVõiVananenud(kustKaust, currentDir + er + r[2] + er, r[1], baidid );
// 29.05.2015 viidud teha
? pluginPRO
ei peaks tegema, kui ei ole uus või värskendatud
//System.out.println("unzip:");
unzip(currentDir + er + "pro" + er + "pro.zip", currentDir + er + "pro" );
unzip(currentDir + er + "gif" + er + "gifpro.zip", currentDir + er + "gif"+ er + "pro" );
mainFrame = new StarterProgressBar (updN) ;
29.05.2015
mainFrame.setTitle ( title ) ;
29.05.2015
mainFrame . setVisible ( true ) ;
29.05.2015
mainFrame . pack ( ) ;
29.05.2015
//29.05.2015 viidud progressBari String tulem = modifyPropertiesAndStart();
private static String topeltLangkriipsud(String s)
String tulemus = "";
StringTokenizer st = new StringTokenizer(s, "\\", true);
* ; st.hasMoreTokens();
String leks = st.nextToken();
tulemus += leks;
? tulemus.endsWith("\\")
tulemus += "\\";
<======tulemus
private static void writeLog(String s)
System.out.println("AlgJavaStarter: " + s );
static void tehaKuiPole(String dir)
? ! onOlemasKaust(dir)
File dirF = new File(dir);
dirF.mkdirs();
writeLog("OK: Folder " + dir + " created.");
<======
writeLog("OK: Folder " + dir + " exists.");
static void tuuaKuiPole(String kustKaust, String kuhuKaust, String failiNimi, boolean baidid)
kui failinimes ei ole miinust, siis kustKaust+failinim==>kuhuKaust+failinimi
kui failinimes on miinus: failinimi == OSSS-fN.xxx, siis
kui OSSS=currentOsName, siis kustKaust+failinim==>kuhuKaust+fN.xxx
kui OSSS!=currentOSName, siis ei tooda
String failiNimiTegelik = failiNimi;
int k = failiNimi.indexOf("-");
? k != -1
algab Os nimega
String osNimiFailinimest = failiNimi.substring(0, k);
//System.out.println("AlgJavaStarterSIL:");
//System.out.println("--------currentOsName"+ currentOsName);
//System.out.println("--------osNimiFailinimest"+ osNimiFailinimest);
//System.out.println("--------failiNimiTegelik"+ failiNimi.substring(k+1));
? !osNimiFailinimest.equals(currentOsName)
jääb kopeerimata
<==============
failiNimiTegelik = failiNimi.substring(k+1);
String kust = kustKaust + failiNimi;
String kuhu = kuhuKaust + failiNimiTegelik;
? SIL
System.out.println("AlaJavaStarter:tuuaKuiPole:kust = "+kust);
System.out.println("AlaJavaStarter:tuuaKuiPole:kuhu = "+kuhu);
? onOlemasFail(kuhu)
writeLog("OK: File " + kuhu + " exists.");
<======
? onOlemasURLfail(kust)
writeLog("COPYING . . . . " );
? baidid
kopeeridaURLstBaidid(kust, kuhu);
<======
kopeeridaURLst(kust, kuhu);
writeLog("OK: File " + kuhu + " copied. " );
<======
writeLog("ERROR: File " + kust + " not available. " );
static void tuuaKuiPoleVõiVananenud(String kustKaust, String kuhuKaust, String failiNimi, boolean baidid)
kui failinimes ei ole miinust, siis kustKaust+failinim==>kuhuKaust+failinimi
kui failinimes on miinus: failinimi == OSSS-fN.xxx, siis
kui OSSS=currentOsName, siis kustKaust+failinim==>kuhuKaust+fN.xxx
kui OSSS!=currentOSName, siis ei tooda
String failiNimiTegelik = failiNimi;
int k = failiNimi.indexOf("-");
? k != -1
algab Os nimega
String osNimiFailinimest = failiNimi.substring(0, k);
? !osNimiFailinimest.equals(currentOsName)
jääb kopeerimata
<==============
failiNimiTegelik = failiNimi.substring(k+1);
String kust = kustKaust + failiNimi;
String kuhu = kuhuKaust + failiNimiTegelik;
? onOlemasFail(kuhu)
writeLog("OK: File " + kuhu + " exists.");
fail on, tuua, kui on vananenud
? onOlemasURLfail(kust)
mõlemad on olemas
boolean isOutOfDate = false;
kas fail on aegunud?
String ridaFail = null;
otsida AlgJava.jar rida
* int i = 0; i < updN; i++
? updRida[i].indexOf("|" + failiNimi + "|") != -1
ridaFail = updRida[i];
<======
? ridaFail == null
<======
ei tea, kas on aegunud
kontrollida aegumist:
String r[] = ridaFail.split("[|]");
long homeFileTime = Long.parseLong(r[0]);
long localFileTime = (new File(kuhu)).lastModified();
isOutOfDate = homeFileTime/1000 > localFileTime/1000;
//SIL
System.out.println(" -----------------------------------------------------");
System.out.println("AlgJavaStarter:SILUM: home,local="+
homeFileTime + ", " + localFileTime);
System.out.println("AlgJavaStarter:SILUM: kuhu="+kuhu);
System.out.println("AlgJavaStarter:SILUM: kust="+kust);
? isOutOfDate
System.out.println("AEGUNUD");
<======
System.out.println("POLE AEGUNUD");
System.out.println(" -----------------------------------------------------");
? isOutOfDate
writeLog("COPYING . . . . " );
? baidid
kopeeridaURLstBaidid(kust, kuhu);
<======
kopeeridaURLst(kust, kuhu);
writeLog("OK: File " + kuhu + " updated. " );
<======
writeLog("ERROR: File " + kust + " not available. File " + kuhu + " not updated.");
<======
faili pole, tuua
? onOlemasURLfail(kust)
writeLog("COPYING . . . . " );
? baidid
kopeeridaURLstBaidid(kust, kuhu);
<======
kopeeridaURLst(kust, kuhu);
writeLog("OK: File " + kuhu + " copied. " );
<======
writeLog("ERROR: File " + kust + " not available. " );
static void tuuaAmadeus_AlgJavaKuiPoleVõiVananenud(String kustKaust, String kuhuKaust, String failiNimi, boolean baidid)
Eeldus: updInf[] on olemas
String kust = kustKaust + failiNimi;
String kuhu = kuhuKaust + failiNimi;
String ajatempelNimi = kuhuKaust + "ajatempel.txt";
long homeTime = 0;
kompilaatorile
leida homeTime
String ridaAmadeus_AlgJava = null;
otsida Amadeus_AlgJava.jar rida
* int i = 0; i < updN; i++
? updRida[i].indexOf("|" + failiNimi + "|") != -1
ridaAmadeus_AlgJava = updRida[i];
<======
? ridaAmadeus_AlgJava == null
<======
jääb 0
String r[] = ridaAmadeus_AlgJava.split("[|]");
homeTime = Long.parseLong(r[0]);
lugeda ajatempli väärtus
boolean onOlemasAjatempelTxt = true;
long tempel = -1;
juhuks, kui on vale Long failis ajatempel.txt
!!
BufferedReader in =
new BufferedReader (
new FileReader (ajatempelNimi)) ;
String line = in . readLine ( );
? line != null
!!
tempel = Long.parseLong(line);
! (NumberFormatException e)
in . close ( ) ;
..catch
! (IOException ioe)
onOlemasAjatempelTxt = false;
boolean onVajaTuua = false;
? ! onOlemasAjatempelTxt
writeLog("File " + ajatempelNimi + " not available. ");
onVajaTuua = true;
<======
? tempel == -1
writeLog("Time stamp in " + ajatempelNimi + " corrupted. ");
onVajaTuua = true;
<======
? ! onOlemasFail(kuhu)
writeLog("OK: File " + kuhu + " not found. " );
onVajaTuua = true;
<======
writeLog("OK: File " + kuhu + " exists. " );
kas on vananenud?
? homeTime/1000 != tempel/1000
onVajaTuua = true;
kopeerida, kui vaja
? onVajaTuua
? onOlemasURLfail(kust)
writeLog("COPYING . . . . " );
? baidid
kopeeridaURLstBaidid(kust, kuhu);
<======
kopeeridaURLst(kust, kuhu);
writeLog("OK: File " + kuhu + " updated. " );
teha uus ajatempel
? onOlemasAjatempelTxt
kustutadaFail(ajatempelNimi);
!!
PrintWriter vfail =
new PrintWriter(new FileWriter(ajatempelNimi),true);
vfail.println("" + homeTime) ;
vfail . close ( ) ;
..catch
! (IOException ioe)
<======
writeLog("ERROR: File " + kust + " not available. File " + kuhu + " not updated.");
static String modifyPropertiesAndStart()
writeLog(" modifyPropertiesAndStart.");
String runPath, tulemus;
String q = "\"";
//runPath = "jar uf Amadeus_AlgJava.jar Amadeus.properties" +
//" && java -jar Amadeus_AlgJava.jar";
//runPath = "zip -u Amadeus_AlgJava.jar Amadeus.properties" +
//" && java -jar Amadeus_AlgJava.jar";
? jar_u_implemented
???paraku ka java1.5_08 ... ei toeta jar -u
runPath = "jar uf Amadeus_AlgJava.jar Amadeus.properties" +
" && java -jar Amadeus_AlgJava.jar";
<======
runPath = "zip Amadeus_AlgJava.jar Amadeus.properties" +
" & java -jar Amadeus_AlgJava.jar";
&, sest zip [-u?] 'nothing to do' annab Exit 12
//runPath = "zip -u Amadeus_AlgJava.jar Amadeus.properties" +
//" & java -jar Amadeus_AlgJava.jar";
&, sest zip -u 'nothing to do' annab Exit 12
29.05.2015
? mainFrame != null
mainFrame.dispose();
CommandLine cmdLine=new CommandLine();
tulemus=cmdLine.exec(CommandLine.toArray(runPath));
//SIL writeLog("TULEMUS:"+tulemus);
? tulemus.trim().endsWith("ExitValue: 0")
<==========null
writeLog("ERROR: cannot start.");
? tulemus.indexOf("existing jar file") > -1
writeLog("Reason: an earlier copy of Amadeus_AlgJava is currently running.");
<======
writeLog("Process info: \n"+tulemus);
<======tulemus
public static void teha(int nr)
29.05.2015
globaalsed:
currentDir, er
? nr == -1
Amadeus_AlgJava loomine/värskendamine
mainFrame.midaTeeme = currentDir + er + "Amadeus_Algjava.jar";
String kustKaust = "http://www.cs.ut.ee/~kiho/Amadeus_AlgJava/Orig/";
tuuaAmadeus_AlgJavaKuiPoleVõiVananenud(kustKaust, currentDir + er, "Amadeus_AlgJava.jar", true);
<======
int i = nr;
i-nda updateInfo.txt rea korral (kui pole AlgJava.jar, Amadeus_Algjava.jar)
? updRida[i].indexOf("|AlgJavaStarter.jar|") != -1
<======
? updRida[i].indexOf("|Amadeus_AlgJava.jar|") != -1
<======
14.06.07 kui pole PRO siis jäävad vahele ka:
//System.out.println("updRida[i] " + updRida[i] );
//System.out.println("| + currentOsName +-AlgJavaPro.html| " + "|" + currentOsName +"-AlgPythonPro.html|");
? !pluginPRO && (updRida[i].indexOf("|" + currentOsName +"-AlgJavaPro.html|") != -1)
? !pluginPRO && (updRida[i].indexOf("|pro.zip|") != -1)
<======
? !pluginPRO && (updRida[i].indexOf("|gifpro.zip") != -1)
<======
String[] r = updRida[i].split("[|]");;
String kustKaust = "http://www.cs.ut.ee/~kiho/Amadeus_AlgJava/Orig/";
boolean baidid = (r[1].endsWith("jar") || r[1].endsWith("gif") || r[1].endsWith("class") || r[1].endsWith("zip"));
? currentOsName.equals("Linux")
baidid = true;
mainFrame.midaTeeme = currentDir + er + r[2] + er + r[1];
//System.out.println("AlgPythonStarter:tha:r[1]="+r[1]);
? r[1].equals(currentOsName + "-AlgJavaWorks.xml")
|| r[1].equals(currentOsName + "-AlgJavaMacros.xml")
kasutaja muudetut ei muuda
tuuaKuiPole(kustKaust, currentDir + er + r[2] + er, r[1], baidid );
<======
tuuaKuiPoleVõiVananenud(kustKaust, currentDir + er + r[2] + er, r[1], baidid );
? pluginPRO
ei peaks tegema, kui ei ole uus või värskendatud
//System.out.println("unzip:");
unzip(currentDir + er + "pro" + er + "pro.zip", currentDir + er + "pro" );
unzip(currentDir + er + "gif" + er + "gifpro.zip", currentDir + er + "gif"+ er + "pro" );
<======
AmFile-st:
static boolean onOlemasKaust(String kaustatee)
Kasutavad: Default.setProperties jt ...
1.12.2005
<======(new File(kaustatee)).isDirectory()
static boolean onOlemasFail(String failitee)
Kasutavad: Default.setProperties jt ...
1.12.2005
<======(new File(failitee)).isFile()
public static boolean onOlemasURLfail(String kust)
..try
!!
URL url = new URL ( kust ) ;
url . openStream ( );
..catch
! (MalformedURLException mue)
URL c'tor
System . out . println ( "AmFile:onOlemasURLfile: " + kust + " is an invalid URL: " + mue ) ;
<==========false
..catch
! (IOException ioe)
//System . out . println ( "AmFile:onOlemasURLfile: " + "IOException: " + ioe ) ;
<==========false
<======true
public static boolean kopeeridaURLst(String kust, String kuhu)
Marty Hall void main
// A pure 1.1 variation of a utility that appears in
// Core Web Programming from Prentice Hall Publishers.
// May be freely used or adapted.
// 1998 Marty Hall, http://www.apl.jhu.edu/~hall/java/.
..try
!!
URL url = new URL ( kust ) ;
BufferedReader in =
new BufferedReader (
new InputStreamReader ( url . openStream ( ) ) ) ;
PrintWriter vfail =
new PrintWriter(new FileWriter(kuhu),true);
String line ;
..while
* ; ( line = in . readLine ( ) ) != null ;
? line.length() > 0
muidu topib tühjad read vahele
//System . out . println ( "> " + line + "<" ) ;
? SIL
System.out.println("AlaJavaStarter:tuuaKuiPole:kust = "+kust);
System.out.println("AlaJavaStarter:tuuaKuiPole:kuhu = "+kuhu);
? SIL && kust.contains("AlgJavaWorks.html")
System.out.println("AlaJavaStarter:rida:kopeeridaURLst:line:"+line);
try {
Thread.sleep(1000);
} catch (InterruptedException ie) {
//Handle exception
}
vfail.println( line) ;
in . close ( ) ;
vfail . close ( ) ;
05.09.2006
..catch
! (MalformedURLException mue)
URL c'tor
System . out . println ( "kopeeridaURLst: " + kust + " is an invalid URL: " + mue ) ;
<==========false
..catch
! (IOException ioe)
Stream constructors
System . out . println ( "kopeeridaURLst: " + "IOException: " + ioe ) ;
<==========false
<======true
public static boolean kopeeridaURLstBaidid(String kust, String kuhu)
Marty Hall void main
// A pure 1.1 variation of a utility that appears in
// Core Web Programming from Prentice Hall Publishers.
// May be freely used or adapted.
// 1998 Marty Hall, http://www.apl.jhu.edu/~hall/java/.
..try
!!
URL url = new URL ( kust ) ;
InputStream ips = (url.openStream());
//FileOutputStream vfail = new FileOutputStream(kuhu);
OutputStream vfail = new FileOutputStream(kuhu);
byte[] buf = new byte[1024];
int len;
* ;(len = ips.read(buf)) > 0;
vfail.write(buf, 0, len);
//
int c;
? (c = ips.read()) == -1
<======
ips. close ( ) ;
vfail. close ( ) ;
..catch
! (MalformedURLException mue)
URL c'tor
System . out . println ( "AmFile:kopeeridaURLstBaidid: " + kust + " is an invalid URL: " + mue ) ;
<==========false
..catch
! (IOException ioe)
Stream constructors
System . out . println ( "AmFile:kopeeridaURLst: " + "IOException: " + ioe ) ;
<==========false
<======true
static int kustutadaFail(String failitee)
File fail = new File(failitee);
? !fail.exists()
<======2
faili ei ole
<======1
ei saanud kustutada (nt !access)
<======0
kustutatud
14.06.07
private static void unzip(String zipf, String kuhuLahti)
14.06.07
Antud: _
Tulemus: _
System.out.println("zipf:" + zipf +"x" );
int BUFFER = 2048;
buffer
!!
BufferedOutputStream dest = null;
buffer
ZipFile zf = new ZipFile(zipf);
Enumeration zipEnum = zf.entries();
String dir = new String(".");
dir = kuhuLahti.replace('\\', '/');
? dir.charAt(dir.length()-1) != '/'
dir += "/";
* ; zipEnum.hasMoreElements() ;
ZipEntry item = (ZipEntry) zipEnum.nextElement();
? item.isDirectory()
//Directory
File newdir = new File( dir + item.getName() );
System.out.print("Creating directory "+newdir+"..");
newdir.mkdir();
System.out.println("Done!");
<======
//file
String newfile = dir + item.getName();
System.out.print("Writing "+newfile+"..");
InputStream is = zf.getInputStream(item);
buffer
int count;
byte data[] = new byte[BUFFER];
FileOutputStream fos = new FileOutputStream(newfile);
dest = new BufferedOutputStream(fos, BUFFER);
* ; (count = is.read(data, 0, BUFFER))!= -1 ;
dest.write(data, 0, count);
dest.flush();
dest.close();
is.close();
System.out.println("Done!");
zf.close();
! (Exception e)