头歌 实验六 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();
		}
	}
}
相关推荐
Moe4882 小时前
Redis 缓存三大经典问题:穿透、击穿与雪崩
java·后端·面试
卷Java2 小时前
Python字典:键值对、get()方法、defaultdict,附通讯录实战
开发语言·数据库·python
liuyao_xianhui2 小时前
优选算法_翻转链表_头插法_C++
开发语言·数据结构·c++·算法·leetcode·链表·动态规划
happy_baymax2 小时前
三电平矢量表达式MATLAB实现
开发语言·matlab
xyq20242 小时前
jEasyUI 创建 XP 风格左侧面板
开发语言
赫瑞2 小时前
Java中的最长公共子序列——LCS
java·开发语言
于先生吖2 小时前
零基础开发国际版同城出行平台 JAVA 顺风车预约系统实战教学
java·开发语言
代码雕刻家2 小时前
2.22.StringBuffer类的常见用法、
java·开发语言
yhole2 小时前
Java进阶(ElasticSearch的安装与使用)
java·elasticsearch·jenkins
明月(Alioo)2 小时前
Python 并发编程详解 - Java 开发者视角
java·开发语言·python