21xrx.com
2024-11-22 14:34:37 Friday
登录
文章检索 我的文章 写文章
深入探究Java中的输入输出: 从基本的库函数到高级的流处理
2023-06-11 13:41:36 深夜i     --     --
Java

Java是一种非常强大的编程语言,其提供了许多实用的输入输出函数和类,可以方便地对数据进行读写和处理。在本文中,我们将深入探究Java中的输入输出,从基本的库函数到高级的流处理。我们将介绍Java的标准输入输出函数、文件读写、字节流和字符流等基础知识,并讨论高级的流处理技术和数据格式化输出。快跟着以下内容学习吧!

一、Java标准输入输出函数

Java的标准输入输出函数是指System.in、System.out和System.err。其中,System.in是标准输入,System.out是标准输出,System.err是标准错误输出。我们可以通过System.in和Scanner类进行输入,通过System.out进行输出。

示例代码:


import java.util.Scanner;

public class Main {

  public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    System.out.print("请输入一个字符串:");

    String str = scanner.nextLine();

    System.out.println("您输入的字符串是:" + str);

  }

}

在这个代码示例中,我们使用了Scanner类读取控制台输入,然后输出到控制台。

二、Java文件读写

Java中的文件读写通常使用File、FileInputStream、FileOutputStream和BufferedReader等类和函数来完成。我们可以使用这些类和函数来读取文件和写入文件等操作。

示例代码:

读取文件内容:


import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

public class Main {

  public static void main(String[] args) {

    try {

      File file = new File("test.txt");

      FileInputStream fis = new FileInputStream(file);

      InputStreamReader isr = new InputStreamReader(fis, "UTF-8");

      BufferedReader br = new BufferedReader(isr);

      String str = null;

      while ((str = br.readLine()) != null) {

        System.out.println(str);

      }

      br.close();

      isr.close();

      fis.close();

    } catch (Exception e) {

      e.printStackTrace();

    }

  }

}

在这个代码示例中,我们使用了File、FileInputStream、InputStreamReader和BufferedReader等类和函数来读取test.txt文件的内容,并输出到控制台。

写入内容到文件:


import java.io.BufferedWriter;

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStreamWriter;

public class Main {

  public static void main(String[] args) {

    try {

      File file = new File("test.txt");

      FileOutputStream fos = new FileOutputStream(file, true);

      OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");

      BufferedWriter bw = new BufferedWriter(osw);

      String str = "这是写入的内容。";

      bw.write(str);

      bw.newLine();

      bw.flush();

      bw.close();

      osw.close();

      fos.close();

    } catch (Exception e) {

      e.printStackTrace();

    }

  }

}

在这个代码示例中,我们使用了File、FileOutputStream、OutputStreamWriter和BufferedWriter等类和函数来将字符串写入到test.txt文件中。

三、Java字节流与字符流

Java中的输入输出流分为字节流和字符流,它们分别处理字节数据和字符数据。字节流通常用来处理二进制数据,而字符流则用来处理文本数据。

Java的字节流分为InputStream和OutputStream两个抽象类,它们定义了字节输入和输出的基本接口。Java的字符流分为Reader和Writer两个抽象类,它们定义了字符输入和输出的基本接口。这些抽象类都有许多具体的实现类,可以满足不同的输入输出需求。

示例代码:

读取二进制文件内容:


import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

public class Main {

  public static void main(String[] args) {

    try {

      InputStream is = new FileInputStream("test.bin");

      byte[] buffer = new byte[1024];

      int len = 0;

      while ((len = is.read(buffer)) != -1)

        // 处理读取到的数据

      

      is.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

在这个代码示例中,我们使用了FileInputStream和InputStream等类和函数来读取test.bin文件的二进制内容。

写入文本内容到文件:


import java.io.BufferedWriter;

import java.io.FileWriter;

import java.io.IOException;

import java.io.Writer;

public class Main {

  public static void main(String[] args) {

    try {

      Writer writer = new FileWriter("test.txt", true);

      BufferedWriter bw = new BufferedWriter(writer);

      String s = "这是一行文本。";

      bw.write(s);

      bw.newLine();

      bw.flush();

      bw.close();

      writer.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

在这个代码示例中,我们使用了FileWriter和BufferedWriter等类和函数来将字符串写入到test.txt文件中。

四、Java高级的流处理技术和数据格式化输出

Java中的高级流处理技术包括了管道流、数据流和序列化等,它们可以对各种类型的数据进行处理和传输。另外,Java也提供了许多数据格式化输出的方式,包括了DecimalFormat类、NumberFormat类和String.format()函数等。

示例代码:

使用管道流传输数据:


import java.io.IOException;

import java.io.PipedInputStream;

import java.io.PipedOutputStream;

public class Main {

  public static void main(String[] args) {

    try {

      PipedInputStream in = new PipedInputStream();

      PipedOutputStream out = new PipedOutputStream(in);

      byte[] data = "这是要传输的数据".getBytes();

      out.write(data);

      out.close();

      byte[] buffer = new byte[data.length];

      int len = in.read(buffer);

      System.out.println(new String(buffer, 0, len));

      in.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

在这个代码示例中,我们使用了PipedInputStream和PipedOutputStream等类和函数来进行管道流传输数据。

数据格式化输出:


import java.text.DecimalFormat;

public class Main {

  public static void main(String[] args) {

    double d = 134.56789;

    DecimalFormat df = new DecimalFormat("#,###.00");

    String s = df.format(d);

    System.out.println(s);

  }

}

在这个代码示例中,我们使用了DecimalFormat类和format()函数来对double类型的数据进行格式化输出。

总结:

在本文中,我们介绍了Java中的输入输出,包括了标准输入输出函数、文件读写、字节流和字符流等基础知识。同时,我们也讨论了高级的流处理技术和数据格式化输出。希望本文能够对大家对Java的输入输出有一个更深入的了解。

输入输出, 标准输入输出, 文件读写, 字节流, 字符流, 高级流处理, 数据格式化输出.

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复