头歌 实验六 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();
		}
	}
}
相关推荐
gopher95113 分钟前
final,finally,finalize的区别
java·开发语言·jvm
m0_6873998410 分钟前
QT combox 前缀匹配
开发语言·数据库·qt
Jason-河山12 分钟前
利用 Python 爬虫采集 1688商品详情
java·http
计算机源码社12 分钟前
分享一个餐饮连锁店点餐系统 餐馆食材采购系统Java、python、php三个版本(源码、调试、LW、开题、PPT)
java·python·php·毕业设计项目·计算机课程设计·计算机毕业设计源码·计算机毕业设计选题
Zww089116 分钟前
idea插件市场安装没反应
java·ide·intellij-idea
夜雨翦春韭17 分钟前
【代码随想录Day31】贪心算法Part05
java·数据结构·算法·leetcode·贪心算法
汤兰月17 分钟前
Python中的观察者模式:从基础到实战
开发语言·python·观察者模式
计算机学姐17 分钟前
基于微信小程序的调查问卷管理系统
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
DieSnowK18 分钟前
[C++][第三方库][httplib]详细讲解
服务器·开发语言·c++·http·第三方库·新手向·httplib
火红的小辣椒23 分钟前
PHP反序列化8(phar反序列化)
开发语言·web安全·php