自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 在命令行窗口查看Maven版本(mvn-v)时,出现 Error: JAVA_HOME is set to an invalid directory.的解决方法

在命令行窗口查看Maven版本时,出现 Error: JAVA_HOME is set to an invalid directory.的解决方法mvn-v一开始认为是jdk版本问题 java15后来换了1.8还是不行java-version显示不出东西1.删除JAVA_HOME后重新设置JAVA_HOME又好了接下来设置Path系统变量成功界面]...

2021-11-28 21:06:57 396

原创 JAVA基础知识点复习总结

十进制到其他进制案例:52到二进制,十进制,十六进制8421码数据类型类型转换面试题ASCIIL码A:65 a:97 0:45字符串连接注意点

2021-05-12 23:09:33 181 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 92

原创 TCP练习

/*需求:建立一个文本转换服务器。客户端给服务端发送文本,服务单会将文本转成大写在返回给客户端。而且客户度可以不断的进行文本转换。当客户端输入over时,转换结束。分析:客户端:既然是操作设备上的数据,那么就可以使用io技术,并按照io的操作规律来思考。源:键盘录入。目的:网络设备,网络输出流。而且操作的是文本数据。可以选择字符流。步骤1,建立服务。2,获取键盘录入。3,将数据发给服务端。4,后去服务端返回的大写数据。5,结束,关资源。都是文本数据,可以使用字符流进行操作,同

2021-02-26 16:29:25 86

原创 tcp传输

/*演示tcp传输。1,tcp分客户端和服务端。2,客户端对应的对象是Socket。服务端对应的对象是ServerSocket。*//*客户端,通过查阅socket对象,发现在该对象建立时,就可以去连接指定主机。因为tcp是面向连接的。所以在建立socket服务时,就要有服务端存在,并连接成功。形成通路后,在该通道进行数据的传输。需求:给服务端发送给一个文本数据。步骤:1,创建Socket服务。并指定要连接的主机和端口。/import java.io.;import java

2021-02-25 22:29:37 196

原创 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 60

原创 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 487

原创 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 84

原创 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 69

原创 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 76

原创 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 106 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 129 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 95

原创 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 79 1

原创 练习

/*有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括姓名,三门课成绩),输入的格式:如:zhagnsan,30,40,60计算出总成绩,并把学生的信息和计算出的总分数高低顺序存放在磁盘文件"stud.txt"中。1,描述学生对象。2,定义一个可操作学生对象的工具类。思想:1,通过获取键盘录入一行数据,并将该行中的信息取出封装成学生对象。2,因为学生有很多,那么就需要存储,使用到集合。因为要对学生的总分排序。所以可以使用TreeSet。3,将集合的信息写入到一个文件中。*/

2021-02-23 21:12:26 78

原创 字符编码

字符编码/*编码:字符串变成字节数组。解码:字节数组变成字符串。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 55

原创 转换流的字符编码

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 58

原创 ByteArrayStream

/*用于操作字节数组的流对象。ByteArrayInputStream :在构造的时候,需要接收数据源,。而且数据源是一个字节数组。ByteArrayOutputStream: 在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组。这就是数据目的地。因为这两个流对象都操作的数组,并没有使用系统资源。所以,不用进行close关闭。在流操作规律讲解时:源设备,键盘 System.in,硬盘 FileStream,内存 ArrayStream。目的设备:控制台 Sys

2021-02-23 16:43:13 226

原创 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 118

原创 RandomAccessFile

import java.io.*;/*RandomAccessFile该类不是算是IO体系中子类。而是直接继承自Object。但是它是IO包中成员。因为它具备读和写功能。内部封装了一个数组,而且通过指针对数组的元素进行操作。可以通过getFilePointer获取指针位置,同时可以通过seek改变指针的位置。其实完成读写的原理就是内部封装了字节输入流和输出流。通过构造函数可以看出,该类只能操作文件。而且操作文件还有模式:只读r,,读写rw等。如果模式为只读 r。不会创建文件。会去读取

2021-02-23 16:41:41 101

原创 管道流

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 59

原创 切割文件

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 190

原创 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 89

原创 打印流

/*打印流:该流提供了打印方法,可以将各种数据类型的数据都原样打印。字节打印流:PrintStream构造函数可以接收的参数类型:1,file对象。File2,字符串路径。String3,字节输出流。OutputStream字符打印流:PrintWriter构造函数可以接收的参数类型:1,file对象。File2,字符串路径。String3,字节输出流。OutputStream4,字符输出流,Writer。*/import java.io.*;class PrintSt

2021-02-09 15:57:56 54

原创 Properties

/*Properties是hashtable的子类。也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。是集合中和IO技术相结合的集合容器。该对象的特点:可以用于键值对形式的配置文件。那么在加载数据时,需要数据有固定格式:键=值。练习:限制程序运行次数。当运行次数到达5次时,给出,请您注册的提示。并不再让该程序执行。/import java.io.;import java.util.*;class PropertiesDemo{public static void ma

2021-02-09 15:46:24 46

原创 记录应用程序运行次数

/*用于记录应用程序运行次数。如果使用次数已到,那么给出注册提示。很容易想到的是:计数器。可是该计数器定义在程序中,随着程序的运行而在内存中存在,并进行自增。可是随着该应用程序的退出,该计数器也在内存中消失了。下一次在启动该程序,又重新开始从0计数。这样不是我们想要的。程序即使结束,该计数器的值也存在。下次程序启动在会先加载该计数器的值并加1后在重新存储起来。所以要建立一个配置文件。用于记录该软件的使用次数。该配置文件使用键值对的形式。这样便于阅读数据,并操作数据。键值对数据是ma

2021-02-09 15:45:37 1048

原创 文件列表

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 227

原创 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 103

原创 异常的日志信息

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 98 1

原创 IO流操作规律

import java.io.*;/*1,源:键盘录入。目的:控制台。2,需求:想把键盘录入的数据存储到一个文件中。源:键盘。目的:文件。3,需求:想要将一个文件的数据打印在控制台上。源:文件。目的:控制台。流操作的基本规律:最痛苦的就是流对象有很多,不知道该用哪一个。通过三个明确来完成。1,明确源和目的。源:输入流。InputStream Reader目的:输出流。OutputStream Writer。2,操作的数据是否是纯文本。是:字符流。不是:字节流。3,

2021-02-07 22:42:47 112 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 697

原创 演示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 69

原创 复制一个图片

/*复制一个图片思路: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 71

原创 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 43

原创 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 35

原创 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 54

原创 装饰设计模式

/*装饰设计模式:当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称为装饰类。装饰类通常会通过构造方法接收被装饰的对象。并基于被装饰的对象的功能,提供更强的功能。*/class Person{public void chifan(){System.out.println(“吃饭”);}}class SuperPerson{private Person p ;SuperPerson(Person p){thi

2021-02-03 17:11:52 52

原创 模拟一下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 97

原创 通过缓冲区复制一个.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 70

原创 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 118 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除