会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132458个问题

package com.bjsxt;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class ObjectStreamObjectTypeDemo {


    public void ObjectOutputStreamObjectTypeDem(List<Person> list) {
        ObjectOutputStream oos = null;
        List<Person> list1 = new ArrayList<>();
        try {
            oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("J:\\课堂练习\\课程目录\\01.02JAVA入门与深化提高\\智能电话本项目实战\\电话簿.txt")));
            for (int i = 0; i < list.size(); i++) {
                list1.add(list.get(i));
            }
            oos.writeObject(list1);
            oos.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (oos != null) {
                    oos.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    public List<Person> ObjectInputStreamObjectTypeDemo(List<Person> list) {
        ObjectInputStream ois = null;
        List<Person> ls = null;
        try {
            ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream("J:\\课堂练习\\课程目录\\01.02JAVA入门与深化提高\\智能电话本项目实战\\电话簿.txt")));
            ls = (List<Person>) ois.readObject();
            for(int i = 0;i<ls.size();i++){
                list.add(ls.get(i));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (ois != null) {
                    ois.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return list;
    }
}

老师的课堂作业,我写了一个类,然后在Operate 类中加了两个方法,一个是在退出时调用类下的方法 将list 遍历到自定义的数组然后将数组序列化到本地文件,

public void exit(){
    ObjectStreamObjectTypeDemo os = new ObjectStreamObjectTypeDemo();
    os.ObjectOutputStreamObjectTypeDem(this.list);
    System.exit(0);;
}

一个是初始化,运行项目时就调用类下的方法将文件的内容读到自定义数组 然后遍历给list,

/**
 * 传入电话薄
 */
public void Initialize(){
    ObjectStreamObjectTypeDemo os = new ObjectStreamObjectTypeDemo();
    os.ObjectInputStreamObjectTypeDemo(this.list);
}

image.png

不知道对不对,功能可以实现。就是我给的都是绝度路径,不知道怎么设定为相对路径,不知道制作成Jar包,能不能用

JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 1756楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 1757楼

Desktop.rar

    image.png    image.png

为什么添加元素只添加第一个、第二个、和最后一个啊?

是哪里的问题啊?

JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 1761楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/智能电话本项目实战 1765楼

老师你好,我这个为什么前面输出的是编码,后面就是乱码了?图片我是在网上随便找了一张

package yx.sudayIo;

import java.io.*;

public class FirstDemo {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = null;
            try {
                fis = new FileInputStream("/Users/yangxi/Desktop/zx.png");
                StringBuffer sb = new StringBuffer();
                int temp;
                while ((temp = fis.read()) != -1){
                    System.out.println(temp);
                    sb.append((char)temp);
                }
                System.out.println(sb.toString());
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    if(fis != null){
                        fis.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    }
}

image.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 1766楼

package cn.work.com.bjsxt2.netWork;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

//发送信息线程
class send extends Thread {
    private Socket socket;
    private Scanner scanner;
    public send(Socket socket , Scanner scanner){
        this.socket = socket;
        this.scanner = scanner;
    }

    @Override
    public void run() {
        this.sendMsg();
    }

    private void sendMsg(){
        PrintWriter pw = null;
        try {
            pw = new PrintWriter(this.socket.getOutputStream());
            while (true){
                String str = scanner.nextLine();
                pw.println(str);
                pw.flush();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                if(pw != null){
                    pw.close();
                }
                if(socket != null){
                    socket.close();
                }
                if(scanner != null){
                    scanner.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
}
//接收信息线程
class receive extends Thread{
    private Socket socket;
    public receive (Socket socket){
        this.socket = socket;
    }

    @Override
    public void run() {
        this.receiveMsg();
    }

    private void receiveMsg(){
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
            while (true){
                String str = br.readLine();
                System.out.println("他说:"+str);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
                try {
                    if(br != null){
                    br.close();}
                } catch (IOException e) {
                    e.printStackTrace();
                }

            if(this.socket != null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}


//主方法
public class goodTCP13 {
    public static void main(String[] args) {
        Scanner scanner = null;
        ServerSocket serverSocket = null;
        Socket socket = null;
        try{
            scanner = new Scanner(System.in);
            System.out.println("请输入:server,<port>或者:IP,<port>");
            String str = scanner.nextLine();
            String [] arr = str.split(",");
            if("server".equals(arr[0])){
                //启动服务端
                System.out.println("TCP Server Listen at"+arr[1]+".......");
                serverSocket = new ServerSocket(Integer.parseInt(arr[1]));
                socket = serverSocket.accept();
                System.out.println("连接成功!");
            }else {
                //启动客户端
                socket = new Socket(arr[0],Integer.parseInt(arr[1]));
                System.out.println("连接成功!");
            }
            //启动发送消息线程
            new send(socket,scanner).start();
            //启动接收消息线程
            new receive(socket).start();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(serverSocket != null){
                try {
                    serverSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

老师帮我看一下

image.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 1769楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637