
Java
moxi233
这个作者很懒,什么都没留下…
展开
-
JAVA基础知识点复习总结
十进制到其他进制案例:52到二进制,十进制,十六进制8421码数据类型类型转换面试题ASCIIL码A:65 a:97 0:45字符串连接注意点原创 2021-05-12 23:09:33 · 230 阅读 · 1 评论 -
TCP练习
import java.io.;import java.net.;class TextClient{public static void main(String[] args) throws Exception{Socket s = new Socket(“192.168.1.254”,10006); BufferedReader bufr = new BufferedReader(new FileReader("IPDemo.java")); PrintWriter out原创 2021-02-26 18:46:33 · 133 阅读 · 0 评论 -
TCP练习
/*需求:建立一个文本转换服务器。客户端给服务端发送文本,服务单会将文本转成大写在返回给客户端。而且客户度可以不断的进行文本转换。当客户端输入over时,转换结束。分析:客户端:既然是操作设备上的数据,那么就可以使用io技术,并按照io的操作规律来思考。源:键盘录入。目的:网络设备,网络输出流。而且操作的是文本数据。可以选择字符流。步骤1,建立服务。2,获取键盘录入。3,将数据发给服务端。4,后去服务端返回的大写数据。5,结束,关资源。都是文本数据,可以使用字符流进行操作,同原创 2021-02-26 16:29:25 · 124 阅读 · 0 评论 -
tcp传输
/*演示tcp传输。1,tcp分客户端和服务端。2,客户端对应的对象是Socket。服务端对应的对象是ServerSocket。*//*客户端,通过查阅socket对象,发现在该对象建立时,就可以去连接指定主机。因为tcp是面向连接的。所以在建立socket服务时,就要有服务端存在,并连接成功。形成通路后,在该通道进行数据的传输。需求:给服务端发送给一个文本数据。步骤:1,创建Socket服务。并指定要连接的主机和端口。/import java.io.;import java原创 2021-02-25 22:29:37 · 230 阅读 · 0 评论 -
UDP聊天
/*编写一个聊天程序。有收数据的部分,和发数据的部分。这两部分需要同时执行。那就需要用到多线程技术。一个线程控制收,一个线程控制发。因为收和发动作是不一致的,所以要定义两个run方法。而且这两个方法要封装到不同的类中。/import java.io.;import java.net.*;class Send implements Runnable{private DatagramSocket ds;public Send(DatagramSocket ds){this.ds原创 2021-02-25 22:28:39 · 92 阅读 · 0 评论 -
UdpSend
import java.net.*;/*需求:通过udp传输方式,将一段文字数据发送出去。,定义一个udp发送端。思路:1,建立updsocket服务。2,提供数据,并将数据封装到数据包中。3,通过socket服务的发送功能,将数据包发出去。4,关闭资源。*/class UdpSend{public static void main(String[] args) throws Exception{//1,创建udp服务。通过DatagramSocket对象。DatagramS原创 2021-02-25 19:43:06 · 569 阅读 · 0 评论 -
IPDemo
import java.net.*;class IPDemo{public static void main(String[] args) throws Exception{//InetAddress i = InetAddress.getLocalHost();// System.out.println(i.toString());// System.out.println(“address:”+i.getHostAddress());// System.out.println(“原创 2021-02-25 19:42:39 · 121 阅读 · 0 评论 -
MyMenuDemo
import java.awt.;import java.awt.event.;classMyMenuDemo{private Frame f;private MenuBar mb;private Menu m,subMenu;private MenuItem closeItem,subItem;MyMenuDemo(){ init();}public void init(){ f = new Frame("my window"); f.setBounds(300,10原创 2021-02-25 16:34:51 · 94 阅读 · 0 评论 -
MyMenuTest
package mymenu;import java.awt.;import java.awt.event.;import java.io.*;public class MyMenuTest{private Frame f;private MenuBar bar;private TextArea ta;private Menu fileMenu;private MenuItem openItem,saveItem,closeItem;private FileDialog openD原创 2021-02-25 16:34:22 · 104 阅读 · 0 评论 -
MyWindowDemo
import java.awt.;import java.awt.event.;import java.io.*;class MyWindowDemo{private Frame f;private TextField tf;private Button but;private TextArea ta;private Dialog d;private Label lab;private Button okBut;MyWindowDemo(){ init();}publi原创 2021-02-25 13:12:10 · 151 阅读 · 1 评论 -
AwtDemo
import java.awt.;import java.awt.event.;/*创建图形化界面:1,创建frame窗体。2,对窗体进行基本设置。比如大小,位置,布局。3,定义组件。4,将组件通过窗体的add方法添加到窗体中。5,让窗体显示,通过setVisible(true)事件监听机制的特点:1,事件源。2,事件。3,监听器。4,事件处理。事件源:就是awt包或者swing包中的那些图形界面组件。事件:每一个事件源都有自己特有的对应事件和共性事件。监听器:将可以触发某原创 2021-02-25 10:37:26 · 172 阅读 · 1 评论 -
键盘监听
import java.awt.;import java.awt.event.;class MouseAndKeyEvent{private Frame f;private Button but;private TextField tf;MouseAndKeyEvent(){ init();}public void init(){ f = new Frame("my frame"); f.setBounds(300,100,600,500); f.setLayout(new原创 2021-02-25 10:37:01 · 123 阅读 · 0 评论 -
Frame
import java.awt.;import java.awt.event.;class FrameDemo{//定义该图形中所需的组件的引用。private Frame f;private Button but;FrameDemo(){ init();}public void init(){ f = new Frame("my frame"); //对frame进行基本设置。 f.setBounds(300,100,600,500); f.setLayout(ne原创 2021-02-25 10:36:12 · 121 阅读 · 1 评论 -
练习
/*有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括姓名,三门课成绩),输入的格式:如:zhagnsan,30,40,60计算出总成绩,并把学生的信息和计算出的总分数高低顺序存放在磁盘文件"stud.txt"中。1,描述学生对象。2,定义一个可操作学生对象的工具类。思想:1,通过获取键盘录入一行数据,并将该行中的信息取出封装成学生对象。2,因为学生有很多,那么就需要存储,使用到集合。因为要对学生的总分排序。所以可以使用TreeSet。3,将集合的信息写入到一个文件中。*/原创 2021-02-23 21:12:26 · 124 阅读 · 0 评论 -
字符编码
字符编码/*编码:字符串变成字节数组。解码:字节数组变成字符串。String–>byte[]; str.getBytes(charsetName);byte[] -->String: new String(byte[],charsetName);/import java.util.;class EncodeDemo{public static void main(String[] args)throws Exception{String s = “哈哈”; byte原创 2021-02-23 18:19:36 · 78 阅读 · 0 评论 -
转换流的字符编码
import java.io.*;class EncodeStream{public static void main(String[] args) throws IOException{//writeText();readText();}public static void readText()throws IOException { InputStreamReader isr = new InputStreamReader(new FileInputStream("utf.txt")原创 2021-02-23 18:18:48 · 87 阅读 · 0 评论 -
ByteArrayStream
/*用于操作字节数组的流对象。ByteArrayInputStream :在构造的时候,需要接收数据源,。而且数据源是一个字节数组。ByteArrayOutputStream: 在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组。这就是数据目的地。因为这两个流对象都操作的数组,并没有使用系统资源。所以,不用进行close关闭。在流操作规律讲解时:源设备,键盘 System.in,硬盘 FileStream,内存 ArrayStream。目的设备:控制台 Sys原创 2021-02-23 16:43:13 · 278 阅读 · 0 评论 -
DataInputStream与DataOutputStream
/*DataInputStream与DataOutputStream可以用于操作基本数据类型的数据的流对象。/import java.io.;class DataStreamDemo{public static void main(String[] args) throws IOException{//writeData();//readData(); //writeUTFDemo();// OutputStreamWriter osw = new OutputStreamWri原创 2021-02-23 16:42:19 · 162 阅读 · 0 评论 -
RandomAccessFile
import java.io.*;/*RandomAccessFile该类不是算是IO体系中子类。而是直接继承自Object。但是它是IO包中成员。因为它具备读和写功能。内部封装了一个数组,而且通过指针对数组的元素进行操作。可以通过getFilePointer获取指针位置,同时可以通过seek改变指针的位置。其实完成读写的原理就是内部封装了字节输入流和输出流。通过构造函数可以看出,该类只能操作文件。而且操作文件还有模式:只读r,,读写rw等。如果模式为只读 r。不会创建文件。会去读取原创 2021-02-23 16:41:41 · 135 阅读 · 0 评论 -
管道流
import java.io.*;class Read implements Runnable{private PipedInputStream in;Read(PipedInputStream in){this.in = in;}public void run(){try{byte[] buf = new byte[1024]; System.out.println("读取前。。没有数据阻塞"); int len = in.read(buf); System.out.p原创 2021-02-23 16:40:53 · 90 阅读 · 0 评论 -
切割文件
import java.io.;import java.util.;class SplitFile{public static void main(String[] args) throws IOException{//splitFile();merge();}public static void merge()throws IOException{ ArrayList<FileInputStream> al = new ArrayList<FileInputStre原创 2021-02-09 17:03:41 · 242 阅读 · 0 评论 -
SequenceDemo
import java.io.;import java.util.;class SequenceDemo{public static void main(String[] args) throws IOException{ Vector<FileInputStream> v = new Vector<FileInputStream>(); v.add(new FileInputStream("c:\\1.txt")); v.add(new FileInputSt原创 2021-02-09 17:03:05 · 121 阅读 · 0 评论 -
打印流
/*打印流:该流提供了打印方法,可以将各种数据类型的数据都原样打印。字节打印流:PrintStream构造函数可以接收的参数类型:1,file对象。File2,字符串路径。String3,字节输出流。OutputStream字符打印流:PrintWriter构造函数可以接收的参数类型:1,file对象。File2,字符串路径。String3,字节输出流。OutputStream4,字符输出流,Writer。*/import java.io.*;class PrintSt原创 2021-02-09 15:57:56 · 78 阅读 · 0 评论 -
Properties
/*Properties是hashtable的子类。也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。是集合中和IO技术相结合的集合容器。该对象的特点:可以用于键值对形式的配置文件。那么在加载数据时,需要数据有固定格式:键=值。练习:限制程序运行次数。当运行次数到达5次时,给出,请您注册的提示。并不再让该程序执行。/import java.io.;import java.util.*;class PropertiesDemo{public static void ma原创 2021-02-09 15:46:24 · 76 阅读 · 0 评论 -
记录应用程序运行次数
/*用于记录应用程序运行次数。如果使用次数已到,那么给出注册提示。很容易想到的是:计数器。可是该计数器定义在程序中,随着程序的运行而在内存中存在,并进行自增。可是随着该应用程序的退出,该计数器也在内存中消失了。下一次在启动该程序,又重新开始从0计数。这样不是我们想要的。程序即使结束,该计数器的值也存在。下次程序启动在会先加载该计数器的值并加1后在重新存储起来。所以要建立一个配置文件。用于记录该软件的使用次数。该配置文件使用键值对的形式。这样便于阅读数据,并操作数据。键值对数据是ma原创 2021-02-09 15:45:37 · 1159 阅读 · 0 评论 -
文件列表
import java.io.*;class FileDemo2{public static void main(String[] args){File dir = new File(“c:\”);File[] files = dir.listFiles(); for(File f : files) { System.out.println(f.getName()+"::"+f.length()); } }public static void listDemo_2(){原创 2021-02-08 20:17:27 · 255 阅读 · 0 评论 -
File类常见方法
import java.io.*;/*File类常见方法:1,创建。boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。和输出流不一样,输出流对象一建立创建文件。而且文件已经存在,会覆盖。boolean mkdir():创建文件夹。boolean mkdirs():创建多级文件夹。2,删除。boolean delete():删除失败返回false。如果文件正在被使用,则删除不了返回falsel。void deleteOnEx原创 2021-02-08 19:54:53 · 130 阅读 · 0 评论 -
异常的日志信息
import java.io.;import java.util.;import java.text.*;class ExceptionInfo{public static void main(String[] args)throws IOException{try{int[] arr = new int[2];System.out.println(arr[3]);}catch (Exception e){ try { Date d = new Date();原创 2021-02-07 23:04:32 · 135 阅读 · 1 评论 -
IO流操作规律
import java.io.*;/*1,源:键盘录入。目的:控制台。2,需求:想把键盘录入的数据存储到一个文件中。源:键盘。目的:文件。3,需求:想要将一个文件的数据打印在控制台上。源:文件。目的:控制台。流操作的基本规律:最痛苦的就是流对象有很多,不知道该用哪一个。通过三个明确来完成。1,明确源和目的。源:输入流。InputStream Reader目的:输出流。OutputStream Writer。2,操作的数据是否是纯文本。是:字符流。不是:字节流。3,原创 2021-02-07 22:42:47 · 151 阅读 · 1 评论 -
读取键盘录入&使用readLine方法来完成键盘录入
/*读取键盘录入。System.out:对应的是标准输出设备,控制台。System.in:对应的标准输入设备:键盘。需求:通过键盘录入数据。当录入一行数据后,就将该行数据进行打印。如果录入的数据是over,那么停止录入。/import java.io.;class ReadIn{public static void main(String[] args) throws IOException{InputStream in = System.in;StringBuilder s原创 2021-02-07 20:08:33 · 778 阅读 · 0 评论 -
演示mp3的复制。通过缓冲区&MyBufferedInputStream
/*演示mp3的复制。通过缓冲区。BufferedOutputStreamBufferedInputStream/import java.io.;class CopyMp3{public static void main(String[] args) throws IOException{long start = System.currentTimeMillis();copy_2();long end = System.currentTimeMillis(); System.ou原创 2021-02-07 20:07:08 · 98 阅读 · 0 评论 -
复制一个图片
/*复制一个图片思路:1,用字节读取流对象和图片关联。2,用字节写入流对象创建一个图片文件。用于存储获取到的图片数据。3,通过循环读写,完成数据的存储。4,关闭资源。*/import java.io.*;class CopyPic{public static void main(String[] args){FileOutputStream fos = null;FileInputStream fis = null;try{fos = new FileOutputStre原创 2021-02-07 16:55:35 · 110 阅读 · 0 评论 -
FileStream
/*字符流:FileReaderFileWriter。BufferedReaderBufferedWriter字节流:InputStream OutputStream需求,想要操作图片数据。这时就要用到字节流。复制一个图片./import java.io.;class FileStream{public static void main(String[] args) throws IOException{readFile_3();}public static void原创 2021-02-07 16:38:18 · 76 阅读 · 0 评论 -
MyLineNumberReader
import java.io.*;class MyLineNumberReader extends MyBufferedReader{private int lineNumber;MyLineNumberReader(Reader r){super®;}public String myReadLine()throws IOException{ lineNumber++; return super.myReadLine();}public void setLineNumber(in原创 2021-02-07 15:48:54 · 69 阅读 · 0 评论 -
LineNumberReaderDemo
import java.io.*;class LineNumberReaderDemo{public static void main(String[] args)throws IOException{FileReader fr = new FileReader(“PersonDemo.java”); LineNumberReader lnr = new LineNumberReader(fr); String line = null; lnr.setLineNumber(100); w原创 2021-02-07 15:48:19 · 84 阅读 · 0 评论 -
装饰设计模式
/*装饰设计模式:当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称为装饰类。装饰类通常会通过构造方法接收被装饰的对象。并基于被装饰的对象的功能,提供更强的功能。*/class Person{public void chifan(){System.out.println(“吃饭”);}}class SuperPerson{private Person p ;SuperPerson(Person p){thi原创 2021-02-03 17:11:52 · 96 阅读 · 0 评论 -
模拟一下BufferedReader
/*明白了BufferedReader类中特有方法readLine的原理后,可以自定义一个类中包含一个功能和readLine一致的方法。来模拟一下BufferedReader/import java.io.;class MyBufferedReader extends Reader{private Reader r;MyBufferedReader(Reader r){ this.r = r;}//可以一次读一行数据的方法。public String myReadLine()t原创 2021-02-03 17:11:02 · 150 阅读 · 0 评论 -
通过缓冲区复制一个.java文件
/*通过缓冲区复制一个.java文件。/import java.io.;class CopyTextByBuf{public static void main(String[] args){BufferedReader bufr = null;BufferedWriter bufw = null; try { bufr = new BufferedReader(new FileReader("BufferedWriterDemo.java")); bufw = new Buf原创 2021-02-03 17:10:02 · 99 阅读 · 0 评论 -
BufferedWriter
/*缓冲区的出现是为了提高流的操作效率而出现的。所以在创建缓冲区之前,必须要先有流对象。该缓冲区中提供了一个跨平台的换行符。newLine();*/import java.io.*;class BufferedWriterDemo{public static void main(String[] args) throws IOException{//创建一个字符写入流对象。FileWriter fw = new FileWriter(“buf.txt”); //为了提高字符写入流原创 2021-02-03 17:09:32 · 166 阅读 · 1 评论 -
字符读取流缓冲区BufferedReade
/*字符读取流缓冲区:该缓冲区提供了一个一次读一行的方法 readLine,方便于对文本数据的获取。当返回null时,表示读到文件末尾。readLine方法返回的时候只返回回车符之前的数据内容。并不返回回车符。*/import java.io.*;class BufferedReaderDemo{public static void main(String[] args) throws IOException{//创建一个读取流对象和文件相关联。FileReader fr = ne原创 2021-02-03 17:08:54 · 313 阅读 · 0 评论