Scanner(String source),
source , charset .
Scanner , , . , ( ). :
Scanner con = new Scanner(System.in);
, , :
write(con.hasNextInt()) {
int n = con.nextInt();
}
Scanner , . hasNext(). boolean hasNext () boolean hasNext (int radix), radix . , hasNextInt() true, . , next (). String next(). .
// # 10: : ScannerLogic.java: ScannerDemo.java
package chap09;
import java.io.*;
import java.util.Scanner;
class ScannerLogic {
static String filename = "scan.txt";
public static void scanFile() {
try {
FileReader fr =
new FileReader(filename);
Scanner scan = new Scanner(fr);
while (scan.hasNext()) { //
if (scan.hasNextInt())
System. out. println(
scan.nextInt() + ":int");
else if (scan.hasNextDouble())
System. out. println(
scan.nextDouble() + ":double");
else if (scan.hasNextBoolean())
System. out. println(
scan.nextBoolean() + ":boolean");
Else
System. out. println(
scan.next() + ":String");
}
} catch (FileNotFoundException e) {
System. err. println(e);
}
}
public static void makeFile() {
try {
FileWriter fw =
new FileWriter(filename); //
fw.write("2 Java 1,5 true 1.6 "); //
fw.close();
} catch (IOException e) {
System. err. println(e);
}
}
}
public class ScannerDemo {
public static void main(String[] args) {
ScannerLogic. makeFile ();
ScannerLogic. scanFile ();
}
}
:
Int
Java:String
Double
true:boolean
String
hasNext (). - , , . next() nextLine().
Scanner , . useDelimiter(Pattern pattern) useDelimiter(String
pattern), pattern .
|
|
/* # 11: : ScannerDelimiterDemo.java*/
package chapt09;
import java.util.Scanner;
public class ScannerDelimiterDemo {
public static void main(String args[]) {
double sum = 0.0;
Scanner scan =
new Scanner("1,3;2,0; 8,5; 4,8; 9,0; 1; 10");
scan.useDelimiter(";\\s*");
while (scan.hasNext()) {
if (scan.hasNextDouble())
sum += scan.nextDouble();
else System. out. println(scan.next());
}
System. out. printf(" = " + sum);
}
}
}
:
= 36.6
"; *" Scanner, ; .
String findInLine(Pattern pattern) String
findInLine(String pattern) . , . , null.
String findWithinHorizon(Pattern pattern, int count) String findWithinHorizon(String pattern, int count) count . skip(Pattern pattern).
, pattern, skip() . , skip() NoSuchElementException.
Java Java jar -.
Java java.util.zip java.util.jar zip jar. jar zip zip. java.util.jar java.util.zip, void putNextEntry(ZipEntry e) JarOutputStream. java.util.jar. zip -,
Jar Zip.
java.util.jar , jar, .
JarEntry ( ZipEntry) jar -. :
void setMethod(int method) ;
int getMethod() ;
void setComment(String comment) ;
String getComment() ;
void setSize(long size) ;
long getSize() ;
long getCompressedSize() ;
JarOutputStream jar -. write() , , , . :
void setLevel(int level) . , ;
|
|
void putNextEntry(ZipEntry e) jar -. JarEntry ;
void closeEntry() jar - ;
void write(byte b[], int off, int len) b off len ;
void finish() jar - ;
void close() .
/* # 12: jar-: PackJar.java */
package chapt09;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
import java.util.zip.Deflater;
public class PackJar {
public static void pack(String[] filesToJar,
String jarFileName, byte [] buffer) {
try {
JarOutputStream jos =
new JarOutputStream(
new FileOutputStream(jarFileName));
//
jos.setLevel(Deflater. DEFAULT_COMPRESSION);
for (int i = 0; i < filesToJar.length; i++) {
System. out. println(i);
jos.putNextEntry(new JarEntry(filesToJar[i]));
FileInputStream in =
new FileInputStream(filesToJar[i]);
int len;
while ((len = in.read(buffer)) > 0)
jos.write(buffer, 0, len);
jos.closeEntry();
in.close();
}
jos.close();
} catch (IllegalArgumentException e) {
e.printStackTrace();
System. err. println(" ");
} catch (FileNotFoundException e) {
e.printStackTrace();
System. err. println(" ");
} catch (IOException e) {
e.printStackTrace();
System. err. println(" ");
}
}
public static void main(String[] args) {
System. out. println(" jar-");
//
String[] filesToJar = new String[2];
filesToJar[0] = "chapt09//UseJar.java";
filesToJar[1] = "chapt09//UseJar.class";
byte [] buffer = new byte [1024];
//
String jarFileName = "example.jar";
pack (filesToJar, jarFileName, buffer);
}
}
JarFile , jar -. , , . , . entries () jar -. JarEntry jar - . getEntry(String name) . getInputStream() . , .
JarInputStream jar - . read() , , , .
/* # 13: jar-: UnPackJar.java */
package chapt09;
import java.io.*;
import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
public class UnPackJar {
private File destFile;
//
public final int BUFFER = 2048;
public void unpack(String destinationDirectory,
String nameJar) {
File sourceJarFile = new File(nameJar);
try {
File unzipDestinationDirectory =
new File(destinationDirectory);
// zip-
JarFile jFile = new JarFile(sourceJarFile);
Enumeration jarFileEntries = jFile.entries();
while (jarFileEntries.hasMoreElements()) {
//
JarEntry entry =
(JarEntry) jarFileEntries.nextElement();
String entryname = entry.getName();
//entryname = entryname.substring(2);
|
|
System. out. println("Extracting: " + entry);
destFile =
new File(unzipDestinationDirectory, entryname);
//
File destinationParent =
destFile.getParentFile();
//
destinationParent.mkdirs();
// ,
if (!entry.isDirectory()) {
writeFile(jFile, entry);
}
}
jFile.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
private void writeFile(JarFile jFile, JarEntry entry)
throws IOException {
BufferedInputStream is =
new BufferedInputStream(
jFile.getInputStream(entry));
int currentByte;
byte data[] = new byte [BUFFER];
//
BufferedOutputStream dest =
new BufferedOutputStream(
new FileOutputStream(destFile), BUFFER);
while ((currentByte = is.read(data, 0, BUFFER)) > 0){
dest.write(data, 0, currentByte);
}
dest.flush();
dest.close();
is.close();
}
public static void main(String[] args) {
System. out. println(
" jar-");
//
String nameJar = "c:\\work\\example.jar";
//
String destination = "c:\\temp\\";
new UnPackJar().unpack(destination, nameJar);
}
}
9
A
. :
;
.
, .
1. .
2. .
3. , .
4. , .
5. , .
6. .
7. .
8. .
B
B 4, . , static, transient. - .
File.
1. . .
2. Java- public private.
3. Java- .
4. Java- .
5. , , , 7.
6. , , . , .
|
|
7. , , .
8. Java- , .
9. Java- .
10. .
11. , , . m n .
12. . , . -. .
13. , , . , k j.
14. . . ( ). .
15. : . . 2- , . 90 .
16. . , . . , .
9
9.1.
, , myfile File? , ?
1) myfile.chdir("NAME");
2) myfile.cd("NAME");
3) myfile.changeDir("NAME");
4) File .
9.2.
System.in?
1) java.lang.System;
2) java.io.InputStream;
3) java.io.BufferedInputStream;
4) java.io.PrintStream;
5) java.io.Reader.
9.3.
File?
1) ;
2) ;
3) ;
4) , .
9.4.
, ?
1) Reader;
2) FileReader;
3) ByteReader;
4) InputStream;
5) FileInputStream.
9.5.
transient?
1) ;
2) ;
3) ;
4) ;
5) .
, . () , :
;
;
.
: , .
. , , . , UltraSPARC T1 , 40 125 , 400 .
( LIFO Last In First Out), , . ( FIFO First In First Out) : , . : , , , . , .
Java java.util . Java 2 : Vector, Stack, Hashtable, BitSet, Enumeration . , Java 2, . . , , Java 1.
|
|
, . , . 5.0 .
, :
, , ;
( Object) .
, Java . Object , , . , , , , -, , .
:
Map<K,V> -;
Collection<E> ;
List<E> ;
Set<E> , .
Serializable, Cloneable ( WeakHashMap). , , List<E> Set<E>, Iterable<E>.
Collection<E> , :
boolean add(E obj) obj true, , false, obj ;
boolean addAll(Collection<? extends E> c) ;
void clear() ;
boolean contains(Object obj) true, obj;
boolean equals(Object obj) true, ;
boolean isEmpty() true, ;
Iterator<E> iterator() ;
boolean remove(Object obj) obj ;
int size() ;
Object[] toArray() ;
<T> T[] toArray(T a[]) .
:
Comparator<T> ;
Iterator<E>, ListIterator<E>, Map.Entry<K,V> .
Iterator<E> , . , iterator(). , . . , N , N+1 .
Iterator<E>:
boolean hasNext() , ( ) false. ;
E next() , , , . , next() NoSuchElementException;
void remove() , next().
ListIterator<E> Iterator<E>
.
E previous(), int previousIndex() boolean hasPrevious() . int nextIndex() . void add(E obj) . void set(E obj) ,
.
Map.Entry K getKey() V getValue() . V setValue(V value) , .
. 10.1.
ArrayList<E> . AbstractList<E> List<E>. :
ArrayList()
ArrayList(Collection <? extends E> c)
ArrayList(int capacity)
. List<E> , :
void add(int index, E element) element , index;
void addAll(int index, Collection<? extends E> c) , index;
E get(int index)
index;
int indexOf(Object ob) ;
E remove(int index) index;
E set(int index, E element) index, ;
List<E> subList(int fromIndex, int toIndex) .
, ArrayList<E> .
/* # 1: : DemoGeneric.java */
package chapt10;
import java.util.*;
public class DemoGeneric {
public static void main(String args[]) {
ArrayList<String> list = new ArrayList<String>();
// ArrayList<int> b = new ArrayList<int>(); //
list.add("Java");
list.add("Fortress");
String res = list.get(0); /*
*/
// list.add( new StringBuilder("C#") ); //
//
System. out. print(list);
}
}
:
[Java, Fortress]
, , list. .
, , .
/* # 2: : UncheckCheck.java */
package chapt10;
import java.util.*;
public class UncheckCheck {
public static void main(String args[]) {
ArrayList list = new ArrayList();
list.add(71);
list.add(new Boolean("TruE"));
list.add("Java 1.6.0");
//
int i = (Integer)list.get(0);
boolean b = (Boolean)list.get(1);
String str = (String)list.get(2);
for (Object ob: list)
System. out. println("list " + ob);
ArrayList<Integer> s = new ArrayList<Integer>();
s.add(71);
s.add(92);
// s.add("101");// : s
for (Integer ob: s)
System. out. print("int " + ob);
}
}
:
List 71
List true
List Java 1.6.0
Int 71
Int 92
, , .
Iterator . , .
/* # 3: : DemoIterator.java */
package chapt10;
import java.util.*;
public class DemoIterator {
public static void main(String[] args) {
ArrayList<Double> c =
new ArrayList<Double>(7);
for (int i = 0;i < 10; i++) {
double z = new Random().nextGaussian();
c.add(z); //
}
//
for (Double d: c) {
System. out. printf("%.2f ",d);
}
int positiveNum = 0;
int size = c.size(); //
//
Iterator<Double> it = c.iterator();
//
while (it.hasNext()) {
//
if (it.next() > 0) positiveNum++;
else it.remove(); //
}
System. out. printf("%n : %d ",
positiveNum);
System. out. printf("%n : %d ",
size - positiveNum);
System. out. println("\n ");
for (Double d: c) {
System. out. printf("%.2f ",d);
}
}
}
:
0,69 0,33 0,51 -1,24 0,07 0,46 0,56 1,26 -0,84 -0,53
: 7
: 3
0,69 0,33 0,51 0,07 0,46 0,56 1,26
ListIterator<E>, . .
/* # 4: , : DemoListMethods.java */
package chapt10;
import java.util.*;
public class DemoListMethods {
public static void main(String[] args) {
ArrayList<Character> a =
new ArrayList<Character>(5);
System. out. println(" : "
+ a.isEmpty());
for (char c = 'a'; c < 'h'; ++c) {
a.add(c);
}
char ch = 'a';
a.add(6, ch); // 6 >=8
System. out. println(a);
ListIterator<Character> it; //
it= a.listIterator(2); //
System. out. println(" "
+ it.nextIndex());
it.add('X'); //
System. out. println(a);
//
int index = a.lastIndexOf(ch); // a.indexOf(ch);
a.set(index, 'W'); //
System. out. println(a + " ");
if (a.contains(ch)) {
a.remove(a.indexOf(ch));
}
System. out. println(a + " " + ch);
}
}
:
: true
[a, b, c, d, e, f, a, g]