黑马程序员技术交流社区

标题: 【上海校区】Java输入输出处理 [打印本页]

作者: 不二晨    时间: 2018-10-16 09:27
标题: 【上海校区】Java输入输出处理
1.掌握File类的使用。

2.掌握字节输入输出流类的使用,其中包括InputStream、OutputStream类,FileInputStream,FileOutputStream类,DataInputStream、DataOutputStream、BufferedInputStream、BufferedOutputStream和PrintStream类。

3.掌握字符输入输出流类的使用,其中包括FileReader、FileWriter、InputStreamReader、OutputStreamWriter、PrintWriter等类的使用。

4.掌握ObjectInputStream和ObjectOutputStrema类的使用。

一、InputStream、OutputStream类

InputStream类是字节输入流的根类,有多个子类。

OutputStream类是字节输出流的根类,有多个子类。

InputStream、OutputStream类可以读写二进制数据。

例:

package lx2;
import java.io.*;
import java.nio.file.*;
public class OutputInputDemo {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                Path path= Paths.get("src\\output.dat"); //声明一个路径
                try(OutputStream output = Files.newOutputStream(path, StandardOpenOption.CREATE,StandardOpenOption.APPEND);//StandardOpenOption枚举 操作输入流
                                BufferedOutputStream buffered =new BufferedOutputStream(output)
                                ){
                        for(int i=0;i<10;i++) {
                                int x=(int)(Math.random()*11)+10;
                                buffered.write(x);
                        }
                }catch(IOException e) {
                        e.printStackTrace(); //处理e的异常信息
                }

                try(InputStream input =Files.newInputStream(path, StandardOpenOption.READ);
                                BufferedInputStream buffered =new BufferedInputStream(input)){//操作输入流对象
                        int c;
                        while ((c=buffered.read())!=-1) {
                                System.out.print(c +" ");
                        }
                }catch(IOException e) {
                        e.printStackTrace();
                }
        }

}
二、DataInputStream、DataOutputStream类

编写一个程序,随机生成100个1000到2000之间的整数,将它们写到一个文件out.dat中。写出数据要求使用DataOutputStream类的writeInt(int i)方法。


package lx2;
//编写一个程序,随机生成100个1000到2000之间的整数,将它们写到一个文件out.dat中。
//写出数据要求使用DataOutputStream类的writeInt(int i)方法。
import java.io.*;

public class NumberWrite{
  public static void main(String args[]){
    try{  
      FileOutputStream fos = new FileOutputStream("out.dat");
      BufferedOutputStream bos = new BufferedOutputStream(fos);
      DataOutputStream dos = new DataOutputStream(bos);
      for(int i = 0;i<100;i++){
                int num = (int)(Math.random()*1001)+1000;
                System.out.println(num);
                dos.writeInt(num);
      }      
      dos.close();
      bos.close();
      fos.close();
    }catch(IOException e){}
  }
}
package lx2;

import java.io.*;

public class NumberRead{
  public static void main(String args[]){
    try{
      FileInputStream fis = new FileInputStream("out.dat");
      BufferedInputStream bis = new BufferedInputStream(fis);
      DataInputStream dis = new DataInputStream(bis);
      int data[] = new int[100];
      for(int i =0;i<100;i++){
               data=dis.readInt();
               System.out.println(data);
      }
      dis.close();
      for(int i = data.length-1;i>=0;i--){
               for(int j = 0;j<i;j++){
                       if(data[j]>data[j+1]){
                               int temp = data[j];
                               data[j]=data[j+1];
                               data[j+1]=temp;
                       }
               }
      }

     FileOutputStream fos = new FileOutputStream("out.dat");
     BufferedOutputStream bos = new BufferedOutputStream(fos);
     DataOutputStream dos = new DataOutputStream(bos);
     for(int i = 0;i<data.length;i++){
              dos.writeInt(data);
     }

      dos.close();
      bos.close();
      fos.close();
    }catch(IOException e){}
  }
}




---------------------
【转载】
作者:江南233244
原文:https://blog.csdn.net/qq_3913124 ... 436?utm_source=copy



作者: 不二晨    时间: 2018-10-16 14:11
奈斯
作者: 魔都黑马少年梦    时间: 2018-10-25 14:44





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2