Java的输入输出(自纂的详解)

编程入门 行业动态 更新时间:2024-10-05 17:26:25

Java的输入输出(自纂的<a href=https://www.elefans.com/category/jswz/34/1770044.html style=详解)"/>

Java的输入输出(自纂的详解)

1.基本概念:

       字节流InputStream/OutputStream家族,这些类用来读写以字节为单位的流,通常用来处理二进制流

          

           

           

       字符流Reader/Writer家族,这些类用来读写以Unicode字符组成的文本流,用来处理文本流

       介质流:这些流是在某一个介质上发生的,介质流是直接和保存数据的介质打交道的流

              比如 FileInputStream /FileOutputStream,它的流是一个文件,是指打开一个 文件,以那个文件的内容作为流来读

             

       过滤器流:把字节转换成二进制,过滤流是构造在介质流或者其他过滤流的基础上的流

              

               

               

package io;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;public class DataSava {public static void main(String[] args) {int i=1234;double d=1234.0;try{DataOutputStream out=new DataOutputStream(new BufferedOutputStream(new FileOutputStream("data.bin")));out.writeInt(i);out.writeDouble(d);out.close();DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream("data.bin")));int ii=in.readInt();double dd=in.readDouble();in.close();System.out.println(ii);System.out.println(dd);}catch(Exception e){String str=e.toString();System.out.println(str);}}
}

 现在我们一般用Reader/Writer来读写标准输入输出  ,见下边的几个例子

2.从键盘输入多组数据,存入到文件中,并从文件中读数据

     平时接触到的所有文件都是以字节为单位进行编码的文件

     键盘读入:BufferedReader br=new BufferedReader(new InputStreamReader(System.in))

                     这对桥梁类,在读写过程中,会自动进行本地编码和Unicode之间的转换

    读文件:BufferedReader fin=new BufferedReader(
                         new InputStreamReader(
                                new FileInputStream(file)));

    写文件:

              BufferedWriter out=new BufferedWriter(
                         new OutputStreamWriter(
                                new FileOutputStream(file)));

   (1) FileInputStream /FileOutputStream 都是介质流,以文件的内容作为流,以文件中的内容为流进行读取,因为文件都是以字节为单位进行编码的

   (2) InputStreamReader  是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。

             OutputStreamWriter  是字符流通向字节流的桥梁

   (3) BufferReader:  从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。

                                      可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。

             BufferWriter:   将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

                                      可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了

package io;
import java.io.*;
public class ReaderWriter1 {public static void main(String[] args) {//从键盘输入多组数据,存入到文件中File file=new File("out.txt");try{BufferedReader br=new BufferedReader(new InputStreamReader(System.in));BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));String line1=null;int i=0;while(i++<10){line1=br.readLine();out.write(line1);out.flush();//将缓冲区的数据实际地写入流的介质out.newLine();// 写入一个行分隔符}br.close();out.close();//从文件中读数据BufferedReader fin=new BufferedReader(new InputStreamReader(new FileInputStream(file)));String line2;while((line2=fin.readLine())!=null){System.out.println(line2);}fin.close();}catch(Exception e){e.printStackTrace();}}
}

   3.设计一个程序,用户输入一个文件名,打开该文本文件,并统计输出其中26个英文字母出现的次数

package io;
import java.io.*;
public class staticisc {public static void main(String[] args) {int a[]=new int[26];try{BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("read.txt")));String s=null;while((s=br.readLine())!=null){char arr[]=s.toCharArray();    //字符串转换成 字符数组for(int i=0;i<s.length();i++){a[arr[i]-'A']++;}}for(int i=0;i<26;i++){System.out.println((char)('A'+i)+":"+a[i]);//强制类型转换}}catch(Exception e){e.printStackTrace();}}
}

 

更多推荐

Java的输入输出(自纂的详解)

本文发布于:2024-03-09 06:34:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1724156.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:详解   输入输出   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!