🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.lang.java
Article #22085

Java���˼��---��17�� ��Ŀ

#22085
From: �˺�2��
Date: Tue, 28 Oct 2003 01:50
357 lines
47060 bytes
���°���һϵ����Ŀ�����Ƕ��Ա�����ܵ�����Ϊ���������ڵ��½ڽ�����һ��
�̶ȵ����䡣
����ǰ��������Ŀ��ȣ����Ĵ������Ŀ������Ҫ���ӵö࣬���dz����ʾ���¼�
���Լ��������á�
17.1 ���ִ���
�������C��C++�ľ��飬��ô�ʼ���ܻ��Java�����ı��������е����ɡ���ʵ�ϣ�
������µľ����ٶ��ر�������ܷ������Ǵ��������ķ��ӡ�Ȼ��Java��Ӧ�Ĺ�
�ߣ��ر���String�ࣩ���к�ǿ�Ĺ��ܣ����󱾽ڵ�����չʾ�������������Ҳ��һ
���̶ȵ�����
�����Ҽ�����������������Щ���ӵ�Ŀ�Ķ���Ϊ�˽��������ƹ����������һ
Щ���⡣���ǣ����ǵ��������ǽ�ֹ�ڴˡ�ͨ��򵥵ĸ��죬����������������ϴ�
�����֡�������⣬���ǻ���ʾ���˱�����ǰû��ǿ�����һ��Java���ԡ�
17.1.1 ��ȡ�����б�
���ڱ���ÿһ������Ĵ����б?���Ǵ���Σ���������ɻ�ע�⵽���Ƕ��������ע
�ͼǺ���ʼ�����'//:'��'///:~'����֮����Ҫ�������ֱ�־��Ϣ����Ϊ���ܽ�����
�ӱ����Զ���ȡ�����ݵ�Դ���ļ��С����ҵ�ǰһ������������һ��ϵͳ���ɽ���
�Թ�Ĵ����ļ��Զ��ϲ������С��������Ȿ�飬�ҷ���һ�ָ����������һ��ͨ��
������IJ��ԣ��ͰѴ���ճ�����С��������ں��ѵ�һ�ξͱ���ͨ�������������
�ڲ��༭���롣�������ȡ�����Դ����أ����������ǹؼ�����������һ����
�ִ�������⣬��ô��Ҳ�������ü�ֵ������Ҳ��ʾ��String���������ԡ�
�����Ƚ����鶼��ASCII�ı���ʽ�����һ���������ļ���CodePackager������������
��ģʽ����usageString����Ӧ�������������ʹ��-p��־������ͻ���һ������A
SCII�ı�������������ݣ���һ�������ļ�������������ļ�������ע�ͼǺ���ȡ��
���룬����λ�ڵ�һ�е��ļ��������������ļ�ʹ��ʲô���֡�������⣬����Ҫ����
������һ������Ŀ¼��ʱ�������package��䣨�����package���ָ����·��
ѡ�񣩡�
��������������Ҫ�԰�package������и��٣��Ӷ�������ڷ���ı仯������
ÿһ��ʹ�õ����а���c02��c03��c04�ȵ���ͷ�����ڱ����������������һ�£�����
Щ��com��ͷ�����⣬�����ڶԲ�ͬ���½��и��ٵ�ʱ��ᱻ���ԣ�����ֻҪÿһ�µĵ�
һ�������б����һ��package������CodePackager������֪��ÿһ�·���ı仯����
��������ļ��ŵ��µ���Ŀ¼�
ÿ���ļ���ȡ����ʱ����������һ��SourceCodeFile��������ٽ��Ǹ���������һ��
���ϣ����滹���꾡���������̣�����Щ SourceCodeFile������Լ򵥵ر������ļ�
�У������DZ���Ŀ�ĵڶ�����;�����ֱ�ӵ���CodePackager�������-p��־����ͻ�
��һ��������ļ���Ϊ���롣�Ǹ��ļ����ᱻ��ȡ���ͷţ����뵥�����ļ�������
-p��־����˼������ȡ�������ļ��ѱ������packed�����������һ���ļ���
��Ϊʲô��Ҫ����鷳��ʹ�ô���ļ��أ��������ڲ�ͬ�ļ����ƽ̨�ò�ͬ�ķ�ʽ��
�ļ��ﱣ���ı���Ϣ���������������ǻ����ַ�ı�ʾ��������Ȼ�����п��ܴ�����
һЩ���⡣Ȼ��Java��һ���������͵�IO���������DataOutputStream��������Ա�
֤������������Ժ��ֻ�����ֻҪʹ��һ�� DataInputStream��ȡ��Щ��ݣ��Ϳ��ñ�
����ȷ�ĸ�ʽ�������ǡ���Ҳ����˵��Java��������벻ͬƽ̨�йص�����ϸ�ڣ�����
����Java ���������һ�㡣����-p��־�ܽ����ж��������浽��һ���ļ��������ͨ
�õĸ�ʽ���û��ɴ�Web��������ļ��Լ�Java����Ȼ�������ļ����� CodePackag
er��ͬʱ��ָ��-p��־���ļ�����ͷŵ�ϵͳ����ȷ�ij������ָ����һ����Ŀ¼��
������ڵ�ǰĿ¼������Ŀ¼����Ϊȷ�������������ض�ƽ̨�йصĸ�ʽ��������Ҫ��
��һ���ļ���·����ʱ�����Ǿ�ʹ��File���󡣳�����⣬����һ���ر�İ�ȫ��ʩ
����ÿ����Ŀ¼�ﶼ����һ�����ļ����Ǹ��ļ�������ָ�����Ǹ���Ŀ¼��Ӧ�ҵ�����
�����
����������Ĵ��룬�������������ϸ��˵����
959-968ҳ����
����ע�⵽package����Ѿ���Ϊע�ͱ�־�����ˡ��������DZ��µĵ�һ����������p
ackage����DZ���ģ��������CodePackager�ѸĻ�����һ�¡����ǰ���������ȴ��
��Ϊһ�����⡣�����Ǵ���һ�����ʱ����Ҫ��������ͬһ���ض���Ŀ¼�ṹ��ϵ
��һ����һ�����Ա���Ĵ�������Ӷ������õġ��������CodePackager�������
��һ��ר�õ�Ŀ¼���������У�����package�����Ϊע�ͱ�dz�ȥ������ CodePack
ager��˵������������Ȼ��һ����ͨ��package��䣬��Ϊ���򻹲����ر��ӣ���
����鵽����ע�ͣ�û�б�Ҫ������ô���ӣ�����ֻҪ�󷽱���У���
ͷ�������ǡ�֧�֣����ߡ��࣬������ʹ����ʣ��IJ����ڱ�дʱ������ᣬҲ�����
�Ķ�����һ����Pr��������ANSI C��perror�⣬���߶��ܴ�ӡ��һ��������ʾ��Ϣ����
ͬʱҲ���˳����򣩡��ڶ����ཫ�ļ��Ĵ�����̷�װ���ڣ����������ڵ�10�½���
���ˣ�����Ѿ�֪�����������ܿ�ͻ��÷dz���׸���鷳��Ϊ���������⣬��10��
�ṩ�ķ�������������Ĵ����������ġ���̬�������Ѿ�ʹ�ù��ˡ�����Щ�����У�
���Υ��ᱻ���񣬲���Ӧ�ؽ��д��?��Щ����ʹʣ��Ĵ����Եø����ˬ������
����
����������ĵ�һ������SourceCodeFile��Դ���ļ��������?��һ��Դ���ļ���
����������Ϣ�����ݡ��ļ����Լ�Ŀ¼������ͬʱ������һϵ��String����ֱ��
��һ���ļ��Ŀ�ʼ������ڴ���ļ���ʹ�õ�һ����ǣ���ǰϵͳ�Ļ��з��ļ�·
���ָ���ע��Ҫ�� System.getProperty()��鱾�ذ汾��ʲô�����Լ�һ��ΰ�Ȩ��
�������Ǵ��������Copyright.txt�ļ�����ȡ�����ģ�
969-967ҳ����
��һ������ļ�����ȡ�ļ�ʱ����������ϵͳ���ļ��ָ���Ҳ���ע�������Ա��ñ���
ϵͳ���õķ���滻��
��ǰ�µ���Ŀ¼������chapter�ֶ��У����ʼ����c02����ҿ�ע��һ�µ�2�µ��б���
��û�а�һ�������䣩��ֻ���ڵ�ǰ�ļ��﷢��һ��package��������ʱ��cha
pter�ֶβŻᷢ��ı䡣
1. ����һ������ļ�
��һ�����������ڴӱ����ASCII�ı�������ȡ��һ���ļ����������õĴ��루���б���
����ĵط�������벢���ÿһ�У�ֱ���ҵ���һ���б�Ŀ�ͷ����Ϊֹ�������ʱ
����ͻ��½�һ��SourceCodeFile���󣬽���һ�е����ݣ��Ѿ��ɵ��ô�������ˣ�
���ݸ���ͬʱ��Ҫ���� BufferedReader�����Ա����������������ȡԴ���б�ʣ��
�����ݡ�
����ʱ�𣬴�һᷢ��String������Ƶ�����á�Ϊ��ȡ���ļ��������substring()��
���ذ汾�������һ����ʼƫ�ƿ�ʼ��һֱ�����ִ���ĩβ���Ӷ��γ�һ�����Ӵ�����
Ϊ��������ʼ������Ҫ��length()�ó�startMarker���ܳ�������trim()ɾ���ִ�ͷ
β����Ŀո񡣵�һ�����ļ����Ҳ������һЩ�ַ���������indexOf()�������ġ�
��û�з����ҵ�������Ѱ�ҵ��ַ�ͷ���-1�����ҵ���Щ�ַ�ͷ������ǵ�һ�γ�
�ֵ�λ�á�ע����Ҳ��indexOf()��һ�����ذ汾������һ���ִ���Ϊ������һ����
��
��������������ļ���󣬵�һ�лᱻ�����ִ�contents�У����ִ����ڱ���Դ���嵥
���������ģ�����󣬽�ʣ��Ĵ����ж��룬���ϲ����� contents�ִ�����Ȼ���鲢û
���������ô�򵥣���Ϊ�ض������������ر�Ŀ��ơ�һ������Ǵ����飺��ֱ��
����һ��startMarker����ʼ��ǣ���������ǰ��������������б�û������һ�������
�ǡ�������һ��������������Ҫ�˳�����
��һ�����������package�ؼ����йء�����Java��һ��������ʽ�����ԣ����������Ҫ
��package�ؼ��ֱ���λ�����ס�������package �ؼ��֣���ͨ����λ�ڿ�ͷ�Ŀո���
��λ��ĩβ�ķֺţ��Ӷ���ȡ������ע�����һ�ε����IJ���ʵ�֣�������ʹ�ù���
��substring()������ͬʱ�����ʼ�ͽ�������λ�ã�����󣬽������еĵ���滻����
�����ļ��ָ�����Ȼ������Ҫ�����ļ��ָ������һ���ַ�ij��ȡ������������
���ܶ�Ŀǰ������ϵͳ�������õģ���һ���������⣬һ����Ҫ���˼��һ�����
Ĭ�ϲ����ǽ�ÿһ�ж����ӵ�contents�ͬʱ���л����ַ�ֱ������һ��endMarke
r�������ǣ�Ϊֹ���ñ��ָ��������Ӧ��ֹͣ�ˡ�����endMarker֮ǰ�������ļ���
β������Ϊ����һ������
2. �Ӵ���ļ�����ȡ
�ڶ������������ڽ�Դ���ļ��Ӵ���ļ��лָ�����ȡ���������������Ϊ�����ߵ�
�������ص��Ļ����һЩ�м��ı�������ļ���������Դ���ļ��������໥����ܵ�
����һ����Ҫ���ݸ�ù������Ľ�����һ��BufferedReader�������š���ϢԴ����
�������������ȡ���Լ���Ҫ����Ϣ������ÿ�������б?ʼ�ĵط�����һЩ������Ϣ
�����ǵ��������packMarker������ǣ�ָ���ġ���packMarker�����ڣ���ζ�ŵ���
����ͼ�ô���ķ�����ʹ�������������
һ������packMarker���ͻὫ��������������ȡ��Ŀ¼����һ��'#'��β���Լ��ļ�
��ֱ����ĩ������������������£��ɷָ���ᱻ�滻�ɱ������õ�һ���ָ���
������String replace()����ʵ�ֵġ��ϵķָ������ڴ���ļ��Ŀ�ͷ���ڴ����б�
�Կ����һ���ּ��ɿ�������ΰ�����ȡ�����ġ�
������ʣ�µIJ��־ͷdz����ˡ������ÿһ�У�����ϲ���contents�ֱ������en
dMarkerΪֹ��
3. �����б�Ĵ�ȡ
��������һϵ�з����Ǽ򵥵ķ�������directory()��filename()��ע�ⷽ���������ֶ�
����ͬ��ƴд�ʹ�Сд��ʽ����contents()����hasFile()����ָ����������Ƿ����
һ���ļ����ܿ�ͻ�֪��Ϊʲô��Ҫ�������
���������������ڽ���������б�д��һ���ļ�����Ҫôͨ��writePacked()д��һ��
����ļ���Ҫôͨ��writeFile()д��һ�� JavaԴ���ļ���writePacked()��Ҫ��Ψһ��
������DataOutputStream�������ڱ�ĵط��򿪵ģ������׼��д����ļ������Ȱ�ͷ
��Ϣ�����һ�У��ٵ���writeBytes()��contents�����ݣ�д��һ�֡�ͨ�á���ʽ��
׼��дJavaԴ���ļ�ʱ�������Ȱ��ļ����á�������IO.psOpen()ʵ�ֵġ�������Ҫ����
����һ��File�������в��������ļ���Ҳ����·����Ϣ�������ڵ������ǣ���
��·��ʵ�ʴ������û����ܾ���������Դ��Ŀ¼������һ����ȫ��ͬ����Ŀ¼���Ǹ�
Ŀ¼�������в����ڵġ���������ʽдÿ���ļ�֮ǰ����Ҫ����File.mkdirs()��������
��������������д���ļ���Ŀ¼·�������һ���Խ������·����
4. �����б�İ���
����Ŀ¼����ʽ��֯�����б��Ƿdz�����ģ�������Ҫ�������ڴ��н��������б?֮
����Ҫ��������������һ������˵������ԭ��Ϊ�˹����������ϵͳ��Ҳ����˵
���ڴ��������б��ÿ����Ŀ¼ʱ���������һ��������ļ���������ְ����Ǹ�Ŀ
¼��Ӧ�е��ļ���Ŀ��
DirMap��ɰ�������ʵ����һЧ����Ч����ʾ��һ��������ӳ�䡱�ĸ���������ͨ
��һ��ɢ�б?Hashtable��ʵ�ֵģ���ġ�����׼����������Ŀ¼����ֵ���ǰ�
���Ǹ��ض�Ŀ¼�е�SourceCodeFile�����Vector�������ԣ�����������ǽ�һ
������ӳ�䣨���Ӧ����һ��ֵ������ͨ���Ӧ��Vector����һ�������ӳ�䡱��
һϵ��ֵ���������������ƺ��ܸ��ӣ�������ʵ��ʱȴ�Ƿdz��򵥺�ֱ�ӵġ���ҿ���
������ DirMap��Ĵ������붼�����ļ��е�д���йأ�����롰����ӳ�䡱�йء���
���йصĴ������������ѡ�
��ͨ�����ַ�ʽ����һ��DirMap��Ŀ¼ӳ����Ӧ����ϵ��Ĭ�Ϲ������ٶ�����ϣ��Ŀ
¼�ӵ�ǰλ������չ��������һ��������������Ϊ��ʼĿ¼ָ��һ�����õġ���ԡ�·
����
add()������һ����ȡ���ж��Ƚ��ܼ��ij������Ƚ�directory()����������ӵ�Sour
ceCodeFile����ȡ������Ȼ����ɢ�б?Hashtable�������������Ƿ��Ѿ������Ǹ�
�����û�У�����ɢ�б����һ���µ�Vector��������ͬ�Ǹ��������һ�𡣵���ʱ
�����ܲ�ȡ����ʲô;����Vector���Ѿ���λ�ˣ����Խ�����ȡ�������Ա����Source
CodeFile������Vector��������ͬɢ�б?��غϲ���һ���������Ǵ������涼�ܸ�
���÷dz����㡣
дһ������ļ�ʱ�����һ��׼��д����ļ�������DataOutputStream�򿪣�ʹ���
���С�ͨ�á��ԣ������ڵ�һ��д�����ϵķָ����йص�ͷ��Ϣ�����Ų����Hashtabl
e���һ��Enumeration��ö�٣������������У�ѡ��ÿһ��Ŀ¼����ȡ�����Ǹ�Ŀ¼��
�ص�Vector��ʹ�Ǹ� Vector�е�ÿ��SourceCodeFile����д�����ļ��С�
��write()��JavaԴ���ļ�д�����Ƕ�Ӧ��Ŀ¼ʱ�����õķ���������writePackedFile
()��ȫһ�£���Ϊ����������ֻ��򵥵��� SourceCodeFile���ʵ��ķ������������
��·���ᴫ�ݸ�SourceCodeFile.writeFile()�������ļ���д�ú�������ָ������д
�ļ��������Ǹ������ļ�Ҳ�ᱻд�롣
5. ������
ǰ����ܵ���Щ�඼Ҫ��CodePackager���õ���������ȿ��������÷��ִ���һ������
�û�����ȷ�ص����˳��򣬾ͻ��ӡ��������ȷ�÷�������ִ�����������ִ�����us
age()������ͬʱ��Ҫ�˳�����main()Ψһ����������ж�����ϣ��һ������ļ�
������ϣ���һ������ļ�����ȡʲô�������������֤ʹ�õ�����ȷ�IJ���
�������ʵ��ķ�����
����һ������ļ�ʱ����Ĭ��λ�ڵ�ǰĿ¼������������Ĭ�Ϲ���������DirMap����
�ļ������е�ÿһ�ж�����룬������Ƿ��������������
(1) ��������һ������Դ���б����ʼ��ǣ����½�һ��SourceCodeFile���󡣹�����
�����Դ���б�ʣ�µ��������ݡ�������ľ��ֱ�Ӽ���DirMap��
(2) ��������һ������Դ���б�Ľ����ǣ�����ij���ط����ִ�����Ϊ������Ӧ
��ֻ����SourceCodeFile���������֡�
��ȡ���ͷ�һ������ļ�ʱ����ȡ���������ݿɽ��뵱ǰĿ¼����ɽ�����һ������Ŀ
¼��������Ҫ��Ӧ�ش���DirMap���󡣴��ļ���������һ�ж��롣�ϵ��ļ�·���ָ�
����Ϣ������һ������ȡ�����������������������һ��SourceCodeFile�������
����DirMap��ֻҪ����һ���ļ����µ�SourceCodeFile����ͻᴴ�������루������
���һ���ù��������ݺ󣬻�򵥵ط��أ�Ȼ��hasFile()�᷵��һ�����󣩡�
17.1.2 ����Сд��ʽ
���ܶ��漰���ִ����һЩ��Ŀ��˵��ǰ���ԵñȽϷ��㣬������Ҫ���ܵ���Ŀȴ����
���������ã���Ϊ��ִ�е���һ����ʽ��飬��ȷ�����ǵĴ�Сд��ʽ��� ����ʵ�ϡ�
��Java��ʽ��׼������ڵ�ǰĿ¼�д�ÿ��.java�ļ�������ȡ�����������Լ���ʶ��
���������в����Java��ʽ���������������������档
Ϊ�������������ȷ���У����ȱ��빹��һ����������Ϊһ�����ֿ⡱����������
��׼Java���е���������Ϊ�ﵽ���Ŀ�ģ���������ڱ�׼Java�������Դ����Ŀ¼
������ÿ����Ŀ¼������ClassScanner�����ڲ������ṩ�ֿ��ļ������֣�ÿ�ζ���
��ͬ��·�������֣��������п���-a��ָ������Ӧ����ӵ��òֿ��ļ��С�
Ϊ���ó������Լ��Ĵ��룬��Ҫ�����������Ҫʹ�õIJֿ��ļ���·��������
������鵱ǰĿ¼�е�������ͱ�ʶ������������Щû�����ص��͵�Java��дд
�淶��
Ҫע��������򲢲���ʮȫʮ���ġ���Щʱ������ܱ����Լ��鵽һ�����⡣������
����ϸ�������ʱ��ȴ����û��ʲô��Ҫ��ĵġ��������е���ˣ����Ա��Լ�
���ּ������е����д���ǿ�öࡣ
�����г�Դ���룬��������ϸ�Ľ��ͣ�
974-980ҳ����
MultiStringMap���Ǹ�����Ĺ��ߣ��������ǽ�һ���ִ���ÿ�������Ӧ��ӳ�䣩����
����ǰ��һ������Ҳʹ����һ��ɢ�б?Hashtable����������������˼̳С���ɢ��
�?����Ϊӳ���ΪVectorֵ�ĵ�һ���ִ��Դ�add()���������úܼ򵥣�������ɢ
�б����Ƿ����һ���������ڣ��������з���һ����getVector()����Ϊһ���ض�
�ļ����һ��Vector����printValues()������ֵ���Vector�ش�ӡ��������Գ���ĵ�
�Էdz����á�
Ϊ�򻯳������Ա�׼Java�������ȫ������һ��Properties�����ԣ������У����Ա�
׼Java�⣩����סProperties����ʵ���Ǹ�ɢ�б?����ֻ���������ڼ��ֵ���Stri
ng����Ȼ�����һ�η������ã����Ǽ��ɰ���浽���̣����ߴӴ����лָ���ʵ��
�ϣ�����ֻ��Ҫһ�������б?����Ϊ���ֵ��ʹ������ͬ�Ķ���
����ض�Ŀ¼�е��ļ���Ϊ�ҳ���Ӧ�������ʶ������ʹ��������MultiStringMap��
classMap�Լ�identMap�������ڳ���������ʱ����Ὣ��׼����ֿ�װ�ص���Ϊclas
ses��Properties�����С�һ���ڱ���Ŀ¼������һ��������Ҳ�Ὣ�����classes��
�� classMap������һ����classMap�Ϳ������ڱ���Ŀ¼��������������ҿ���cla
sses��鵱ǰ����Dz���һ�����������Ŷ���򷽷�����Ŀ�ʼ�������ռ�����ȥ
�ļǺš���ֱ������һ���ֺš����������Ƕ�����identMap����
ClassScanner��Ĭ�Ϲ������ᴴ��һ�����ļ���ɵ��б?����FilenameFilter��Ja
vaFilterʵ����ʽ���μ��10�£�������Ϊÿ���ļ������scanListing()��
��scanListing()�ڲ������Դ���ļ���������ת����һ��StreamTokenizer�����Ja
va�����ĵ�����true���ݸ� slashStartComments()��slashSlashComments()�ı���Ӧ��
�ǰ�����Щע�����ݣ����������ƺ���Щ���⣨��Java 1.0�м�����Ч���������෴��
��Щ�б�����ע�ͱ�dz�ȥ��������һ����������ȡע�͡�Ϊ�ﵽ���Ŀ�ģ�'/'������
Ϊһ��ԭʼ�ַ�񣬶����� StreamTokeinzer���䵱��ע�͵�һ���ֶԴ��ʱҪ
��ordinaryChar()����ָʾStreamTokenizer��ȡ��ȷ�IJ�����ͬ��ĵ���Ҳ�����ڵ��
��'.'������Ϊ����ϣ���÷������÷���������ı�ʶ�����»�����˵��������DZ�
StreamTokenizer����һ���������ַ�Դ�ģ�����ʱӦ����������ʶ���һ���֣���Ϊ
����static finalֵ����TT_EOF�ȵ���ʽʹ�á���Ȼ����һ��ֻ��Ŀǰ�������ij���
������wordChars()������Ҫȡ����������ӵ�һϵ���ַ������������Ϊһ�����ʿ�
��ļǺ��С�����ڽ�������ע�ͻ��߷���һ�е�ʱ��������Ҫ֪��һ�����ж���
ʲôʱ��������ͨ����� eollsSignificant(true)�����з�EOL���ᱻ��ʾ����
�����DZ�StreamTokenizer���ա�
scanListing()ʣ��IJ��ֽ�����ͼ��Ǻţ�ֱ���ļ�β��һ��nextToken()����һ��
final staticֵ����StreamTokenizer.TT_EOF���ͱ�־���Ѿ��ִ��ļ�β����
���Ǻ��Ǹ�'/'����ζ��������Ǹ�ע�ͣ����Ծ͵���eatComments()���������������
���?���������Ψһ����Ȥ��������������Ƿ�Ϊһ�����ʣ���Ȼ�����ܴ�����һЩ
���������
������class���ࣩ��interface���ӿڣ�����ô���ŵļǺž�Ӧ�����һ������
�����֣�����������classes��classMap����������import����package����ô���Ƕ���
һ��ʣ�µĶ�����ûʲô��Ȥ�ˡ��������ж����϶���һ����ʶ���������Ǹ���Ȥ��
����������һ���ؼ��֣��Դ˲�����Ȥ�������Dz��õĿ϶���Сд��ʽ�����Բ�����ʦ
���ڵؼ�����ǣ������ǽ����뵽identMap��
discardLine()������һ���򵥵Ĺ��ߣ����ڲ�����ĩλ�á�ע��ÿ�εõ�һ���¼Ǻ�ʱ
������������ĩ��
ֻҪ��������ѭ��������һ����б�ܣ��ͻ����eatComments()������Ȼ���Ⲣ����ʾ
�϶�������һ��ע�ͣ����Ա��뽫���ŵļǺ���ȡ�������������һ����б�ܣ���ô��
һ�лᱻ��������һ���Ǻš����������߶����ǣ���ζ�ű�����������ѭ���н���
��ȡ���ļǺ��ͻ�ȥ�����˵��ǣ�pushBack ()�����������ǽ���ǰ�Ǻš�ѹ�ء�������
������������������ѭ������nextToken()��ʱ��������ȷ�صõ��ղ��ͻصĶ�����
Ϊ�������classNames()����������һ�����飬���а���classes�����е���������
���������δ�ڳ�����ʹ�ã����Դ���ĵ��Էdz����á�
������������������ʵ�ʽ��м��ĵط�����checkClassNames()�У������classMap��
ȡ���������ס��classMapֻ�������Ŀ¼�ڵ����֣����ǰ��ļ�����֯�������ļ�
����ܰ������������ӡ��������Ϊ������һ�㣬��Ҫȡ��ÿ��������Vector������
�����У�����һ���ַ��Ƿ�ΪСд����ȷʵΪСд�����ӡ����Ӧ�ij�����ʾ��Ϣ��

��checkIdentNames()�У����Dz�����һ�����Ƶķ�����ÿ����ʶ�����ֶ���identMap��
��ȡ������������ֲ���classes�б��У�����Ϊ����һ����ʶ����߹ؼ��֡���ʱ���
��һ���������������ʶ��ij��ȵ���3���߸���������ַ��Ǵ�д�ģ������
�˱�ʶ����Ϊ�������һ��static finalֵ������TT_EOF����Ȼ���Ⲣ����һ������
���㷨������ٶ��������ջ�ע�⵽�κ�ȫ��д��ʶ���Dz����ʵġ�
������������DZ���ÿһ���Դ�д�ַ�ͷ�ı�ʶ����Ǹ�����Щ����һ����Ϊrepo
rtSet()��Vector�б����ġ���Vector����һ�� �����ϡ��Դ��������һ����Ŀ
�Ƿ������Ǹ������С�����Ŀ��ͨ���ļ���ͱ�ʶ������������ɵġ���Ԫ�ز��ڼ�
���У��ͼ�����Ȼ�����档
�����б�ʣ�µIJ�����main()���ɣ�������������в����ж�������׼���ڱ�׼
Java��Ļ��Ϲ�����һϵ������ɵġ��ֿ⡱������������д�õ���Щ�������
ȷ�ԡ���������������£����ᴴ��һ��ClassScanner����
����׼������һ�����ֿ⡱������׼��ʹ��һ���ֳɵģ������볢�Դ����вֿ⡣ͨ
��һ��File���󲢲����Ƿ���ڣ��Ϳɾ����Ƿ���ļ����� ClassScanner��װ��
classes���Properties�б?ʹ��load()�������Բֿ���ཫ׷�ӵ���ClassScanner��
�������ֵ�����棬���ǽ��串�ǡ������ṩһ�������в������ζ���Լ����
����ͱ�ʶ�����ֽ���һ�μ�顣�������ṩ��������ڶ�����"-a"�����ͱ����Լ�
�빹��һ������ֿ⡣����������£���Ҫ��һ������ļ�������Properties.save(
)�������б�д��һ���ļ���ͬʱ��һ���ִ��ṩ�ļ�ͷ��Ϣ��
17.2 �������ҹ���
��11�½�����Java 1.1�µġ����䡱�����������������ѯһ���ض���ķ�������
Ҫô�������з������ɵ�һ�������б?Ҫô������б��һ���Ӽ�������������ָ��
�Ĺؼ�������Ǹ��������ĺô��������Զ���ʾ�����з�������ǿ�������ڼ̳�
�ṹ�б�����ÿһ���Ļ��ࡣ���ԣ���ʵ�������ǽ�ʡ���ʱ���һ����Ч����
����Ϊ�����Java���������ֶ��涨�÷dz�ȫ����꾡����������Ч���ҳ���Щ����
һ������ؼ��ֵķ��������ҵ���ϱ�׼��һ�����֣���ɸ����ֱ�Ӳ����������
�ĵ���
����11���Ǹ�����Ҳ��ȱ�ݣ���û��ʹ��AWT������һ���������е�Ӧ�á����������
׼������һ���Ľ��GUI�汾���������Ǽ����ַ��ʱ���Զ�ˢ�������Ҳ������������
������н��м��к�ճ�������
983-987ҳ����
�����е���Щ����������ǰ��ʶ���ˡ��ͱ�������GUI����һ����ȿ���Ϊһ������
��Ӧ�ó���ʹ�ã������Ϊһ������Ƭ��Applet��ʹ�á����⣬StripQualifiers������
�ڵ�11�µı�������ȫһ��ġ�
GUI����һ����Ϊname�ġ��ı��ֶΡ���TextField��������������������ҵ�����
��������һ���ı��ֶΣ���ΪsearchFor����ѡ���Ե�����������һ�������֣�ϣ����
�����б��в�����Щ���֡�Checkbox����ѡ����������ָ������ϣ���������ʹ����
������֣����ǽ�ǰ��ĸ����޶���Ϣɾȥ����󣬽����ʾ��һ�����ı����򡱣�Te
xtArea����
��һ�ע�⵽�������δʹ���κΰ�ť��������������������ǿ�ʼһ��������������
�������ı��ֶλ��Ǹ�ѡ�򶼻��ܵ����ǵġ������ߣ�Listener������ļ��ӡ�ֻҪ��
��һ��ı䣬����б����������¡����ı���name�ֶ��е����֣��µ����־ͻ���Na
meL���в��������ֲ�Ϊ�գ����� Class.forName()�����ڳ��Բ����ࡣ��Ȼ��������
�����ڼ䣬���ֿ��ܻ��ò������Class.forName()��ʧ�ܣ�����ζ����� ������
��һ��Υ���Υ��ᱻ����TextArea����֮��Ϊ��Nomatch����û�������ֻҪ
������һ����ȷ�����֣���СдҲ�����ڣ��� Class.forName()�ͻ�ɹ�����getMetho
ds()��getConstructors()��ֱ𷵻���Method�� Constructor���󹹳ɵ�һ�����顣��
Щ�����е�ÿ�����󶼻�ͨ��toString()ת���һ���ִ�����������������ķ�����
������ǩ�����������б?��ϲ���n�С���һ���������ִ����顣����n����Disp
layMethods���һ���Ա�����ڵ���reDisplay()ʱ������ʾ�ĸ��¡�
���ı���Checkbox��searchFor��������ǵġ������ߡ���򵥵ص���reDisplay()��re
Display()�ᴴ��һ����ʱ���飬���а�����Ϊrs���ִ���rs��?�������Res
ult Set�������Ҫôֱ�Ӵ�n���ƣ�û��find�ؼ��֣���Ҫôѡ���ԵشӰ���find
�ؼ��ֵ�n�е��ִ����ơ�������strip Checkbox�������û��Dz���ϣ�������ж�
��IJ���ɾ��Ĭ��Ϊ���ǡ����������ǿ϶��ģ�����StripQualifiers.strip()����
�����飻��֮���ͽ��б�򵥵���ʾ������
��init()�У����Ҳ����Ϊ�����ò���ʱ��Ҫ���д������صĹ�������ʵ�ϣ�����IJ�
����ȫ����ֻ��Ҫ���ٵĹ�������������ʹ�� BorderLayout�ĺô����������û��ı䴰
�ڵĴ�С�����ر���ʹTextArea���ı����򣩸��һЩ������ζ�����ǿ��Ըı��С��
�Ա�����������ɿ���������֡�
���ʱ����һᷢ���ر��б�Ҫ��������ߴ�������״̬����Ϊ����ͼ�ж�Ҫ����ʲô
������ʱ�����ṩ����õķ���֮һ��
17.3 ����������
����Ҫ���ܵij����ǰ������Larry O'Brienԭ����һЩ���룬������Craig Reynolds��
1986����Ƶġ�Boids������Ϊ����ʱ��Ϊ����ʾ���������۵�һ���������⣬��Ϊ
��͹�ԡ���Emergence����
���Ҫ�ﵽ��Ŀ����ͨ��Ϊÿ�ֶ��ﶼ�涨����򵥵Ĺ��򣬴Ӷ��������ֶ����Ⱥ
����Ϊ��ÿ�����ﶼ�ܿ���������������Լ������е����������ֻ��һϵ�и���
�ġ�Ⱥ�ۻ�顱�򽻵���������ƶ���������򵥵�����Ϊ��
(1) �ָ������Ȿ��Ⱥ�ۻ�����ӵ����
(2) ������ӱ���Ⱥ�ۻ����ձ鷽��
(3) �ۺϣ�������Ⱥ�ۻ����������ƶ���
���ӵ�ģ���������԰����ϰ�������أ�������Ԥ֪�ͱ������ϰ���ͻ������������
������Χ�ƻ����еĹ̶��������ɻ��������⣬����Ҳ�������Լ�������Ŀ�꣬��
Ҳ������Ⱥ�尴�ض���·��ǰ��Ϊ�����ۣ������ϰ��Լ�Ŀ����Ѱ�����ز�δ��
�������ィ����ģ���С�
���ܼ������Ƚϼ�ª�����Ҳ��õĹ���Ҳ�൱�򵥣��������������ʵ�ġ�Ҳ��
��˵���൱�������Ϊ������򵥵�ģ���С�͹�ԡ������ˡ�
�����Ժϳɵ�һ���Ӧ�ó��򣯳���Ƭ����ʽ�ṩ��
989-995ҳ����
�����Ⲣ�Ƕ�Craig Reynold�ġ�Boids�������е���Ϊ�������֣�����ȴչ�ֳ����Լ�
���е�����֮�⡣ͨ������ֽ��е����ɽ���ȫ����޸ġ�����������Ⱥ����Ϊ��
�صĸ����������ҿ��Է���Craig Reynold����ҳ�������Ǹ��ط����������ṩ��B
oidsһ��������3Dչʾ�汾��
http://www.hmt.com/cwr/boids.html
Ϊ�˽����������Ϊһ������Ƭ���У�����HTML�ļ���������������Ƭ��־��
995ҳ�г���
17.4 �ܽ�
ͨ���µ�ѧϰ�����֪������Java������һЩ�ϸ��ӵ����顣ͨ����Щ������ɿ���
������Java�ض����Լ��ľ��ޣ�������Щ����Ӱ�����Ҫ�����ܣ�����д�����ִ����
��󣬻ᷢ��C++�İ汾Ҫ��öࡪ���ⲿ��������IO�����ò�������ɵģ����������
�����ʱ�����Ҳ���ѷ����˱仯����Java�ľ���Ҳ���˶��ѣ��������Ա�﷽���
�����������ױȵġ�����Java���������Ա���������õ����κ����顣�����ͬʱ��
Java�ڱ��ķ����Ժ��׶����ϣ�Ҳ�����˹���������ʹ��Javaʱ��һ�㲻��������
�����Գ�������ָ��Ӿ��ء�ʹ����Щ����ʱ����о�������һ������߶����̫�ţ���
��Java�����崿������������ͨ��Java 1.2��JFC/Swing�⣬AWT�ı����������������
���ֵõ��˽�һ������ǿ��
17.5 ��ϰ
(1) ����΢��Щ�Ѷȣ���дFieldOBeasts.java��ʹ���״̬�ܹ����̶ֹ�������һЩ��
ť�������û�����ͻָ���ͬ��״̬�ļ����������Ƕϵ��ĵط���ʼ�������С����Ȳ�
����10�µ�CADState.java���پ���������������
(2) ������ҵ����FieldOBeasts.java��Ϊ��㣬����һ���Զ�����ͨ����ϵͳ��
(3) ������ҵ����ClassScanner.java��Ϊ��㣬����һ������Ĺ��ߣ������ҳ���Щ��
Ȼ���嵫��δ�ù�ķ������ֶΡ�
(4) ������ҵ������JDBC������һ�����������������������һ��ƽ���ļ���ݿ�
Ϊ�����а������֡���ַ���绰���롢E-mail��ַ����ϵ���ϡ�Ӧ��������ݿ�
�﷽��ؼ��������֡�����Ҫ���ҵ�����ʱ��������ڵ�15�µ�VLookup.java����ܹ�
�����������Զ���似����
--
  "`  O|    "    jVHT   T ~ ""    "    
�� ��Դ:���ɽ��ˮ bbs.neu.edu.cn��[FROM: 219.216.70.3]
Technical Details
Message-ID: <492eHD$CW_@bbs.neu.edu.cn>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!fu-berlin.de!peer1.news.newnet.co.uk!peer1.news.newnet.co.uk!nntp.theplanet.net!inewsm1.nntp.theplanet.net!195.40.4.120.MISMATCH!easynet-quince!easynet.net!news.neu.edu.cn!NEU

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: f6cb0,5f53d5a925043e25,start
X-Google-Attributes: gidf6cb0,public
X-Google-ArrivalTime: 2003-10-27 17:51:13 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!fu-berlin.de!peer1.news.newnet.co.uk!peer1.news.newnet.co.uk!nntp.theplanet.net!inewsm1.nntp.theplanet.net!195.40.4.120.MISMATCH!easynet-quince!easynet.net!news.neu.edu.cn!NEU
From: amou.bbs@bbs.neu.edu.cn (�˺�2��)
Newsgroups: cn.bbs.comp.lang.java
Subject: Java���˼��---��17�� ��Ŀ
Date: 28 Oct 2003 01:50:04 GMT
Organization: ��ɽ��ˮ
Message-ID: <492eHD$CW_@bbs.neu.edu.cn>
Mime-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: 8bit
X-Filename: java/M.1067305789.A
Lines: 357