黑马程序员——java基础之易忘点总结(五)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

配置文件可以实现应用程序数据的共享。

 

键盘 System.in,控制台 System.out,硬盘FileStream,内存 ArrayStream。

 

编码:字符串变成字节数组。

解码:字节数组变成字符串。

 

 

RandomAccessFile该类不是IO子类。它是IO包中成员。因为它具备读和写功能。

内部封装了一个数组,而且通过指针对数组的元素进行操作。

getFilePointer获取指针位置。

seek改变指针的位置。

skipBytes(8);跳过指定的字节数

 

 

如果模式为只读 r。不会创建文件。会去读取一个已存在文件,如果该文件不存在,

则会出现异常。

如果模式rw。操作的文件不存在,会自动创建。如果存则不会覆盖。

AWT

       Frame f =new Frame("my awt");

       f.setSize(500,400);设置大小

       f.setLocation(300,200);设置位置

        f.setBounds(300,100,650,600);设置大小及位置

       f.setLayout(newFlowLayout());设置布局

       Button b =new Button("我是一个按钮");

       f.add(b);添加按钮

        f.setVisible(true);设置可见

监听机制:XXX代表Window,Key,Mouse;

监听对象.addXXXListener(newXXXAdaper(){

       public void方法(XXXEvent e){}

});

 

活动监听

对象.addActionListener(newActionListener(){

           publicvoid actionPerformed(ActionEvent e){}

});

 

Menu下拉式菜单

MenuItem菜单

MenuBar()菜单栏

 

功能少的类应该是功能多的类的父类

new FileDialog(f,"我要打开",FileDialog.LOAD);打开文件对话框

new FileDialog(f,"我要保存",FileDialog.SAVE);保存文件对话框

 

 

如何制作可以双击执行的jar包呢?

1,将多个类封装到了一个包(package)中。

2,定义一个jar包的配置信息。

    定义一个文件a.txt 。文件内容内容为:

    Main-Class:(空格)包名.类名(回车)

3,打jar包。

    jar -cvfmmy.jar a.txt 包名

4,通过winrar程序进行验证,查看该jar的配置文件中是否有自定义的配置信息。

5,通过工具--文件夹选项--文件类型--jar类型文件,通过高级,定义该jar类型文件的打开动作的关联程序。

    jdk\bin\javaw.exe-jar

6,双击试试!。哦了。

 

传输用的是字节!

Tcp

Socket客户端和ServerSocket服务端:客户端指定ip和端口,服务端指定端口。

服务端通过accept和客户端相关联。通过Socket对象.getXXX获取XXX流。

.shutdownOutput();关闭客户端的输出流//告诉服务端数据已写完

.getInetAddress().getHostAddress();获取ip

 

 

UDP

DatagramSocket接受和发送数据,接收时指定端口。

DatagramPacket(byte[] buf,intlength,SocketAddress)数据包,发送时指定端口

send发送(数据包);receive接收(数据包)

 

PrintWriter out = newPrintWriter(s.getOutputStream(),true); 带自动刷新

BufferedWriter bufOut =

newBufferedWriter(new OutputStreamWriter(s.getOutputStream()));

前者比后者更优化,后者还得自动刷新。

 

 

URL url = newURL("http://192.168.1.254:8080/myweb/demo.html");

URLConnection conn = url.openConnection();

InputStream in = conn.getInputStream();

 

.getFile()           获取此 URL 的文件名。

.getHost()           取此 URL 的主机名(如果适用)。

.getPath()           获取此 URL 的路径部分。

.getPort()           获取此 URL 的端口号。

.getProtocol()       获取此 URL 的协议名称。

.getQuery()          获取此 URL 的查询部

 

 

正则表达式:用于专门操作字符串。

1,匹配:.matches方法。判断字符是对是错。

2,切割:.split();一字符串到多字符串。

3,替换:.replaceAll(regex,str);如果regex中有定义组,可以在第二参数中通过$符号

获取正则表达式中的已有的组。一字符串变成另一字符串!

[]表示:里面其中元素之一

//d表示:数字

\b

表示:单词边界

{数字}表示:多少个

(.)\\1+表示:任意重复元素

.replaceAll(“(.)\\1+”,”$1”);将叠词去掉。

 

4,获取:将字符串中的符合规则的子串取出。取子串!

       //将规则封装成对象。

       Pattern p = Pattern.compile(reg);

       //让正则对象和要作用的字符串相关联。获取匹配器对象。

       Matcher m  =p.matcher(str);

   boolean b = m.find();//将规则作用到字符串上,并进行符合规则的子串查找。

       System.out.println(m.group());//用于获取匹配后结果。

      

ip地址进行地址段顺序的排序

       ip = ip.replaceAll("(\\d+)","00$1");

       ip = ip.replaceAll("0*(\\d{3})","$1");

       String[] arr = ip.split(" ");

       TreeSet<String> ts = new TreeSet<String>();

       for(String s : arr)

       {

           ts.add(s);

       }

       for(String s : ts)

       {

           System.out.println(s.replaceAll("0*(\\d+)","$1"));

       }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值