头歌 实验六 Java流式编程与网络程序设计

实验六 Java流式编程与网络程序设计

制作不易!点个关注,给大家带来更多的价值

第1关 字节输入/输出流实现数据的保存和读取

java 复制代码
package step1;

import java.io.*;
import java.util.*;

public class SortArray {

	public static void main(String[] args) {
        /********** Begin **********/
		// 创建保存整型数据的数组(数组大小10)
        int[] data= new int[10];
		
		// 给数组赋随
        Scanner sc = new Scanner(System.in);
		for (int i = 0; i < data.length; i++) {
			data[i] = sc.nextInt();
            //data[i]=1+(int)(Math.random()*100);

            
		}
		// 将数组元素按有小到大顺序排列
		Arrays.sort(data);
		
		try {
			// 创建数据保存文件,如果文件不存在,重新创建
			File file = new File("data.txt");
			if (!file.exists()) {
				file.createNewFile();
			}
			// 创建FileOutputStream和DataOutputStream 输出流
			FileOutputStream fout=new FileOutputStream(file);
			DataOutputStream dout=new DataOutputStream(fout);

			// 利用输出流向文件中写入数组数据
			for(int i=0;i<data.length;i++){
				dout.writeInt(data[i]);
			}

			// 关闭输出流
            dout.close();
            fout.close();

			// 创建FileInputStream和DataInputStream 输入流
            FileInputStream f=new FileInputStream(file);
			DataInputStream d=new DataInputStream(f);


			// 利用输入流从文件读取数据并输出
            for(int i=0;i<data.length;i++){
                System.out.print(d.readInt());
                    if(i<data.length-1){
                        System.out.print("<");
                    }
				
				
			}
            

			// 关闭输入流
            d.close();
            f.close();
		} catch (IOException e) {
			// 异常处理
			System.out.println("读写发生异常");
		}
        /********** End **********/
	}
}

第2关 字符输入/输出流实现发送电报

java 复制代码
package step2;

import java.io.*;
import java.util.Scanner;

public class Encrypt {
    public static void main(String[] args) throws IOException {
        
    	// 创建要发送的电报
        Scanner sc = new Scanner(System.in);
    	String data = sc.next();
        
        // 将电报分割成字符数组
    	/********** Begin **********/
        char[]a=data.toCharArray();


        /********** End **********/

        // 打开指定存放电报的文件,如果文件不存在,则创建
        File file = new File("data.txt");
        if(!file.exists()) {
        	file.createNewFile();
        }
        
        // 循环遍历字符数组,将每个字符加密处理
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 'q');
        }

        // 利用字符输出流FileWriter将加密后的字符数组写入文件中
        /********** Begin **********/
        FileWriter fw =new FileWriter(file);
        fw.write(a,0,a.length);
        fw.close();
        

        /********** End **********/


        
        // 利用字符输入流FileReader读取文件,将密文输出
        /********** Begin **********/
        FileReader fr=new FileReader(file);
        char[] arr=new char[a.length];
        fr.read(arr);
        System.out.println("密文:");
        System.out.println(arr);

        /********** End **********/



        
        // 利用字符输入流FileReader读取文件,将密文转换为明文输出    
        /********** Begin **********/
        for(int i=0 ;i<a.length;i++){
            arr[i]=(char)(arr[i]^'q');
        }
         System.out.println("明文:");
        System.out.println(arr);
        
        

        /********** End **********/    
        
        
    }
}

第3关 简单TCP通信

java 复制代码
package step3;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;

public class Client {

    public static void main(String[] args) throws Exception {
        Server server = new Server();
        server.start();
        Scanner sc = new Scanner(System.in);

        //创建客户端Socket(s),指定服务器端IP地址和端口号
        /********** Begin **********/
        Socket s=new Socket("127.0.0.1",8000);

        /**********  end  **********/
        DataOutputStream dos = new DataOutputStream(s.getOutputStream());
        DataInputStream dis = new DataInputStream(s.getInputStream());
        System.out.println(dis.readUTF());
        String name = sc.next();
        dos.writeUTF(name);
        System.out.println(dis.readUTF());
        s.close();
    }
}

第4关 TCP通信实现奇偶数判断

java 复制代码
package step4;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;

public class ClientPlus {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		ServerPlus server = new ServerPlus();
		server.start();
		try {
			//创建客户端Socket(s),指定服务器端IP地址和端口号
			/********** Begin **********/
            Socket s= new Socket("127.0.0.1",8000);


			/**********  end  **********/
			DataOutputStream dos = new DataOutputStream(s.getOutputStream());
			DataInputStream dis = new DataInputStream(s.getInputStream());
			//客户端通过循环依次接收服务器返回的结果,并输入新的整数传递给服务器
			/********** Begin **********/
            while(true){
                System.out.println(dis.readUTF());
                    String num=sc.next();
                    dos.writeUTF(num);
            }

			/**********  end  **********/
		} catch (EOFException e) {
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
相关推荐
今天背单词了吗98010 分钟前
算法学习笔记:8.Bellman-Ford 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·后端·算法·最短路径问题
天天摸鱼的java工程师13 分钟前
使用 Spring Boot 整合高德地图实现路线规划功能
java·后端
CoderPractice16 分钟前
C#控制台小项目-飞行棋
开发语言·c#·小游戏·飞行棋
Coding小公仔24 分钟前
LeetCode 151. 反转字符串中的单词
开发语言·c++·算法
程序猿阿伟26 分钟前
《声音的变形记:Web Audio API的实时特效法则》
开发语言·前端·php
东阳马生架构28 分钟前
订单初版—2.生单链路中的技术问题说明文档
java
咖啡啡不加糖43 分钟前
暴力破解漏洞与命令执行漏洞
java·后端·web安全
风象南1 小时前
SpringBoot敏感配置项加密与解密实战
java·spring boot·后端
DKPT1 小时前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
Percep_gan1 小时前
idea的使用小技巧,个人向
java·ide·intellij-idea