2021-09-16

1

package comgzxhnet;

import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class NetDemo {

/**
 * @throws IOException 
 * @throws UnknownHostException 
 * @conent:
 * 网络编程:
 * ip地址:唯一标识一台计算机
 * port端口:计算机中应用的窗口号,应用都是通过端口号来区分。
 * 0-65535,1024之前的被系统已分配
 * 
 * 127.0.0.7:会送地址
 * 链路层(物理网口)> 网络层(给数据分组发送到网络) > 传输层(TCP通讯,UDP通信)> 应用层(HTTP,FTP)
 * TCP通信:面向链接,三次握手,先连接,再进行数据传输,安全可靠的传输。
 * 严格区分客户端和服务器,服务器等待客户端链接,不能主动向客户端发起链接。
 * 客户端Client:Socket
 * 服务器Server:ServerSocket
 * 1.Socket类:该类实现客户端套接字(也称为“套接字”)。 套接字是两台机器之间通讯的端点。
 * 		该类实现客户端套接字。
 * 		step1:实例化,host目标ip地址,port端口号。建立链接
 */
public static void main(String[] args) throws UnknownHostException, IOException {
	// TODO 自动生成的方法存根

// 1.建立链接
Socket soc = new Socket(“127.0.0.1”,36012);
//2.获取Socket的字节输入流
InputStream is = soc.getInputStream();
int data;
while((data = is.read()) != -1){
System.out.print((char)data);
}
//3.释放资源
soc.close();
is.close();
}

}

2

package comgzxhnet;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerDemo {

/**
 * @throws IOException 
 * @contrnt
 * 服务器ServerSocket:这个类实现了服务器套接字。 
 * Client:(英文)客户端  Server:(英文)服务器
 * step1:实例化,port一定要与客端port一致
 * step2:监听accept()
 * step3:监听拿到Socket,对Socket进行输入/输出操作
 * step4:释放资源
 */
public static void main(String[] args) throws IOException {
	// TODO 自动生成的方法存根
	ServerSocket ss = new ServerSocket(36012);
	Socket sk = ss.accept();    //监听谁对服务器进行了链接
	OutputStream os = sk.getOutputStream();
	String str = "Hello Client 你好!";
	os.write(str.getBytes());   //getBytes():转换成字节数组
	InputStream in = sk.getInputStream();
	InputStreamReader isr = new InputStreamReader(in);
	int len;
	while((len = isr.read())!= -1 ){
		System.out.println((char)len);
	}
	ss.close();
	sk.close();
	os.close();
	
}

}

3

package comgzxhIOdemo;

import java.io.FileInputStream;
import java.io.IOException;

public class IODemo {

/**
 * @content:
 * IO:Input(输入),Output(输出)
 * 流:不同输入输出设备(键盘,内存,显示器,网络等)之间的数据传输抽象表述为“流”。
 * IO流:输入输出操作
	 * 输入流:Input
	 * 输出流:Output
 * 以程序(加载内存)作为参照:
	 * 输入:设备-->程序
	 * 输出:设备-->设备
 * 传输数据不同分为:
	 * 字节传输:图片,视频,音乐等...以二进制存储的文件
	 * 字符传输:传输文字性内容
 * 字节输入:
 	 *InputStream:抽象类是表示输入字节流的所有类的超类
 * 实现子类:FileInputStream从文件系统中的文件获取输入字节
	 * 1.创建字节输入流
	 * 2.读取字节:read()
	 * 3.close:释放资源
 * 
 * 字节输出:
 * OutputStream:FileOutputStream
 * # \转义  \n
 * 
 */
public static void main(String[] args) throws IOException {
	// TODO 自动生成的方法存根

// 1.创建字节输入流
FileInputStream fis = new FileInputStream(“D:\JavaTool\hello.txt”);
int data;
// 2.读取字节
//data = fis.read(); //h
while((data = fis.read()) != -1){ //hello
// println换行打印;print不换行打印
System.out.print((char)data);
}
// 3.关闭:释放资源,在最后
fis.close();
}
}

4

package comgzxhIOdemo;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class OutputDemo {

/**
 * @param args
 * 	 * 字节输出流:
 * 		OutputStream:抽象类是表示字节输出流的所有类的超类
 * 实现子类:FileOutputStream
 * 文件输出流是用于将数据写入到输出流File或一个FileDescriptor.
 * 1.创建输出流:实例化
 * 2.准备写入的数据:字节数组
 * 3.向输出流写入数据
 * 4.释放资源
 * 
 * input:输入--> read():读取 :FilelnputStream
 * output:输出--> write():写入:FileOutputStream
 */
public static void main(String[] args) throws IOException {
	// TODO 自动生成的方法存根
		//1.实例化
	FileOutputStream fos = new FileOutputStream("C:\\Users\\25830\\Documents\\javaioshiyan\\lll.txt");
	//2.准备写入的数据:字节数组
	byte[] b = {65,66,67,'s'};
	//3.向输出流写入数据
	fos.write(b);
	System.out.println("写入操作完毕!");
	//4.释放资源
	fos.close();
}

}

5package gzxhRWDemo.java;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class ReaderDemo {

/**
 * @throws IOException 
 * @content
 * 字符流:Reader和Writer
 * Reader:用于读取字符流的抽象类.
 * InputStreamReader:是从字节流到字符流的桥:它读取字节,
 * 					并使用指定的charset将其解码为字符 。 
 * 实现类:FileReader阅读字符文件
 */
public static void main(String[] args) throws IOException{
	// TODO 自动生成的方法存根
	//1.实例化
	FileReader fr = new FileReader("C:\\Users\\25830\\Documents\\javaioshiyan\\ooo.txt");
	int data;
	while ((data = fr.read()) != -1){
		System.out.print((char)data);
	}
	fr.close();
}

}

6

package gzxhRWDemo.java;

import java.io.FileWriter;
import java.io.IOException;

public class WriterDemo {

/**
 * @content
 *  Writer:用于写入字符流的抽象类
 *  OutputStreamWriter:字符流到字节的桥梁
 *  FileWriter:写字符文件
 */
public static void main(String[] args) throws IOException {
	// TODO 自动生成的方法存根
	//1.实例化
	FileWriter fw = new FileWriter("C:\\Users\\25830\\Documents\\javaioshiyan\\lll.txt");
	//2.给文件写入内容
	fw.write("吃饭了!");
	fw.close();
}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值