java中的Io(input与output)操作总结(三)

标题:Java中的IO(Input与Output)操作总结(三)

概述

在Java中,IO是一项重要的操作。在前两篇文章中,我们讲解了Java中的Input与Output操作。本文将为大家介绍Java中的文件操作、Socket网络编程以及序列化操作。

文件操作

Java中,我们通过File类实现文件操作。首先,我们需要使用构造函数创建一个File对象,进而对文件进行操作。比如,我们要读取文件的内容,可以使用FileInputStream类读取文件输入流。具体的实现代码如下所示:

File file = new File("example.txt");
FileInputStream fis = new FileInputStream(file);

int content;
while ((content = fis.read()) != -1) {
    System.out.print((char) content);
}

fis.close();

上述示例中,首先创建了一个File对象file,指向了想要读取的文件example.txt。接着,使用FileInputStream类创建文件输入流fis,并且使用fis.read()方法逐个读取文件内容,在读取的时候如果返回值为-1,则说明文件已经读取结束,此时需要关闭流。

同样的,在Java中,我们也可以通过FileOutputStream类向文件中写入内容。以下是一个示例代码:

File file = new File("example.txt");
FileOutputStream fos = new FileOutputStream(file);

String content = "hello world";
byte[] bytes = content.getBytes();
fos.write(bytes);

fos.close();

上述示例中,同样创建了一个File对象file,指向了想要写入内容的文件example.txt。然后使用FileOutputStream类创建文件输出流fos,使用fos.write(bytes)方法向文件中写入字节数组bytes。

当然,这只是文件操作的冰山一角,我们还可以进行文件的重命名、删除、创建、获取文件名、获取文件大小等操作。若要了解更多内容,可以查阅File类的官方文档。

Socket网络编程

Java中的Socket网络编程是一项重要的技术,它允许不同的程序在不同的机器之间进行通信。在Java中,我们可以使用同步的阻塞方式或者异步的非阻塞方式在Socket编程中进行数据传输。

以下是一个简单的Socket编程示例,用于在服务器端监听请求,并返回响应:

Server端代码:

ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("Starting server...");

while (true) {
    Socket client = serverSocket.accept();
    System.out.println("Client connected...");

    OutputStreamWriter os = new OutputStreamWriter(client.getOutputStream());
    BufferedWriter out = new BufferedWriter(os);

    out.write("Hello client! \n");
    out.flush();

    client.close();
}

Client端代码:

Socket client = new Socket("localhost", 8888);
System.out.println("Client started...");

InputStreamReader isr = new InputStreamReader(client.getInputStream());
BufferedReader in = new BufferedReader(isr);

String response = in.readLine();
System.out.println(response);

client.close();

上述示例中,Server端使用ServerSocket类创建服务端Socket,监听指定8080端口的请求,一旦有客户端连接,则向客户端发送信息。Client端使用Socket类连接到指定端口,接收服务端的响应信息。

当然,Socket的使用还可以进行数据类型的传输、文件的传输、线程的并发编程等高级操作,如果有兴趣可以查看Java网络编程相关的文档。

序列化操作

Java中,我们可以使用序列化技术将一个Java对象转换成字节,也可以通过反序列化技术将一个字节流转换成Java对象。以下是一个简单的序列化示例:

public class Dog implements Serializable {
    private static final long serialVersionUID = -7049957702495547767L;

    private String name;
    private int age;

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

Dog dog = new Dog("Tom", 3);
FileOutputStream fos = new FileOutputStream("dog.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);

oos.writeObject(dog);
oos.flush();

oos.close();

FileInputStream fis = new FileInputStream("dog.txt");
ObjectInputStream ois = new ObjectInputStream(fis);

Dog dog1 = (Dog) ois.readObject();
System.out.println(dog1.getName() + " " + dog1.getAge());

ois.close();

上述示例中,我们创建了一个Dog类,并实现了Serializable接口。然后,创建一个Dog对象dog,并使用ObjectOutputStream将其序列化写入文件dog.txt中。接着,使用ObjectInputStream从文件中读取dog对象,并反序列化成新的Dog对象dog1。

在Java中,序列化操作还可以进行规则的控制、子类的序列化、序列化ID的控制等操作,具体的内容可以查看Java序列化相关的文档。

3个部分分别介绍了Java中的文件操作、Socket网络编程以及序列化操作。当然,上述示例只是简单的示范。想要进行更为复杂的操作,还需要更深入的了解Java中的IO操作,如果有兴趣可以继续深入学习。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中的Io(input与output)操作总结(三) - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Java注释和关键字实例详解

    Java注释和关键字实例详解 Java注释 在Java中,注释是为了能够方便程序员自己和其他人理解代码所添加的。注释可以分为单行注释和多行注释。 单行注释 单行注释是以 // 开头,后面的所有内容都将被视为注释,直到该行结束。在注释中可以写入对代码的解释、注解、建议等。 示例代码如下: public class Main { public static vo…

    Java 2023年5月26日
    00
  • Java servlet执行流程代码实例

    Java Servlet是Java编写的服务器端程序,它可以接收来自客户端(如浏览器、Android等)的请求并生成响应,通常用于开发Web应用程序。本篇攻略将详细讲解Java Servlet执行流程,并提供两个示例代码来说明。 Servlet执行流程 任何一个Servlet处理一个客户端请求的完整处理过程,都可以分为6个步骤: 客户端向服务器发送请求。 服…

    Java 2023年6月15日
    00
  • JBuilder2005实战JSP之切换控制 图文步骤

    JBuilder2005实战JSP之切换控制 图文步骤 简介 在JSP开发中,常常需要切换到不同的页面或者执行不同的操作。为了实现这一功能,通常需要使用到切换控制技术。 本文将介绍如何在 JBuilder2005 中使用切换控制技术,使页面间的切换更加流畅,使用户的操作更加便捷。 步骤 1.创建项目 首先,我们需要创建一个 JSP 项目,在 JBuilder…

    Java 2023年6月15日
    00
  • IDEA整合SSM框架实现网页上显示数据

    下面我为你详细讲解“IDEA整合SSM框架实现网页上显示数据”的完整攻略。 简介 SSM框架是目前Java Web开发中最流行的框架之一,它包含Spring、SpringMVC和MyBatis三大框架,其中Spring负责类似于IOC(控制反转)、AOP(面向切面编程)等基本功能,SpringMVC负责Web层的处理,MyBatis则负责持久层的管理。IDE…

    Java 2023年6月15日
    00
  • java 重试框架 sisyphus 入门介绍

    下面是关于 Java 重试框架 Sisyphus 的入门介绍及完整攻略。 Sisyphus 是什么? Sisyphus 是一个 Java 重试框架。它的主要作用是在某些特定场景下,自动地对失败的操作进行重试。 Sisyphus 可以非常方便地配置,适用于多种使用场景,包括但不限于网络请求、数据库操作等。Sisyphus 还有非常完善的监控和日志记录机制,可以…

    Java 2023年5月19日
    00
  • Java Mybatis批量修改封装详解

    Java Mybatis批量修改封装详解 批量修改是指批量对数据库表中的记录进行更新操作。在Java Mybatis框架中,我们可以使用批量更新语句来实现批量修改。但是,在实际开发中,我们往往需要对批量更新进行封装,以便更好地复用和维护。本篇文章将介绍如何对Java Mybatis批量修改进行封装,帮助读者更好地理解和应用相关技术。 1. 批量修改的基本思路…

    Java 2023年5月20日
    00
  • SpringBoot整合ip2region实现使用ip监控用户访问城市的详细过程

    下面是整合ip2region实现使用ip监控用户访问城市的详细过程: 步骤一:创建SpringBoot项目 首先,我们需要创建一个SpringBoot项目,可以使用Spring Initializr(https://start.spring.io/)来创建项目。 步骤二:添加依赖 在创建完成后,在pom.xml文件中添加ip2region的Maven依赖: …

    Java 2023年5月19日
    00
  • Spring Security自定义认证器的实现代码

    下面我将详细讲解关于Spring Security自定义认证器的实现代码的攻略。 第一步:创建一个自定义的认证器类 在Spring Security中,自定义的认证器需要继承AbstractAuthenticationProcessingFilter类,实现其中的attemptAuthentication方法,该方法用于对用户提交的认证请求进行身份认证。 我…

    Java 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部