头歌 实验六 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();
		}
	}
}
相关推荐
HUST13 小时前
C语言 第三讲:分支和循环(上)
c语言·开发语言
coooliang13 小时前
【鸿蒙 NEXT】V1迁移V2状态管理
java·前端·harmonyos
Luke Ewin13 小时前
FunASR的Java实现Paraformer实时语音识别 | 一款无需联网的本地实时字幕软件
java·人工智能·语音识别·asr·funasr·paraformer·sensevoice
叫我阿柒啊13 小时前
从Java全栈到前端框架的全面实战:一次真实面试的深度解析
java·spring boot·缓存·微服务·消息队列·vue3·rest api
望未来无悔13 小时前
系统学习算法 专题十八 队列+宽搜
java·算法
Dovis(誓平步青云)13 小时前
《探索C++11:现代语法的性能优化策略(中篇)》
开发语言·c++
再努力"亿"点点13 小时前
爬取m3u8视频完整教程
开发语言·python
一个响当当的名号13 小时前
c++primer 个人学习总结-模板和泛型编程
开发语言·c++·学习
落羽的落羽13 小时前
【C++】C++11的可变参数模板、emplace接口、类的新功能
开发语言·c++·学习
滴滴滴嘟嘟嘟.13 小时前
Qt对话框与文件操作学习
开发语言·qt·学习