zoukankan      html  css  js  c++  java
  • Java-Stream File IO

    Java流(Stream)、文件(File)和IO

    • Java.io包几乎包含了所有的操作输入、输出需要的类。所有这些流类代表了输入源和输出目标
    • 一个流可以理解为一个数据序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据

    读取控制台输入

    • Java的控制台输入由System.in完成;为获得一个绑定到控制台的字符流,可以把System.in包装在一个BufferedReader对象中来创建一个字符流

        BufferedReader br = new BufferedReader(new 
                                InputStreamReader(System.in));
      
    • BufferedReader对象创建后,可以使用read()方法从控制台读取一个字符,或者用readLine()方法读取一个字符串

    • 从控制台读取多字符输入

        import java.io.*;
      
        public class BRRead {
          public static void main(String args[]) throws IOException
          {
            char c;
            // 使用System.in 创建 BufferedReader
            BufferedReader br = new BufferedReader(new 
            					InputStreamReader(System.in));
            System.out.println("输入字符,按下‘q’键退出。");
            // 读取字符
            do {
            	c = (char) br.read();
            	System.out.println(c);
            } while(c != 'q');
          }
        }
      
    • 从控制台读取字符串

        import java.io.*;
        public class BRReadLines {
          public static void main(String args[]) throws IOException
          {
          	// 使用 System.in 创建 BufferedReader
          	BufferedReader br = new BufferedReader(new
          						InputStreamReader(System.in));
          	String str;
          	System.out.println("Enter lines of text.");
          	System.out.println("Enter 'end' to quit.");
          	do {
          		str = br.readLine();
          		System.out.println(str);
          	} while(!str.equals("end"));
          }
        }
      

    控制台输出

    • 控制台的输出由print()println()完成

        import java.io.*;
        // 演示 System.out.write()
        // write() 不常用
        public class WriteDemo {
        	public static void main(String args[]) {
        	  int b;
        	  b = "A";
        	  System.out.write(b);
        	  System.out.write('
      ');
        	}
        }
      

    读写文件

    • FlieInputStream用于读取文件

        // 使用字符串类型的文件名创建一个输入流对象读取文件
        InputStream f = new FileInputStream("C:/java/hello");
        // 使用文件对象创建输入流对象来读取文件
        File f = new File("C:/java/hello");
        InputStream out = new FileInputStream(f);
      
    • FileOutputStream用来创建一个文件并向文件中写数据
      如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建文件

        // 使用字符串类型的文件来创建一个输出流对象
        OutputStream f = new FileOutputStream("C:/java/hello")
        // 使用一个文件对象创建一个输出流来写文件
        File f = new File("C:/java/hello");
        OutputStream f = new FileOutputStream(f);
      
    • 实例

        import java.io.*;
      
        public class filrStreamTest{
          public static void main(String args[]) {
            try{
              byte bWrite [] = {12, 32, 3, 20};
              OutputStream os = new FileOutputStream("test.txt");
              for(int x = 0;x < bWrite.length;x++) {
                os.write(bWrite[x]);
              }
              os.close();
      
              InputStream is = new FileInputStream("test.txt");
              int size = is.available();
      
              for(int i = 0; i < size; i++) {
                System.out.print((char) is.read() + " ");
              }
                is.close();
            } catch(IOException e) {
              System.out.print("Exception");
            }
          }
        }
      

    Java中的目录

    • 创建目录
    1. mkdir()方法创建一个文件夹,成功返回true,失败返回false

    2. mkdirs()方法创建一个文件夹和它的所有父文件夹

       import java.io.File;
      
       public class CreateDir {
         public static void main (String args[]) {
           String dirname = "/tmp/user/java/bin";
           File d = new File(dirname);
           //创建目录
           d.mkdirs();
         }
       }
      
    • 读取目录
    1. 如果创建一个file对象并且它是一个目录,调用isDirectory()方法会返回true

    2. 调用对象上的list()方法,提取包含的文件和文件列表

       import java.io.File;
      
       public class DirList {
         public static void main(String args[]) {
           String dirname = "/tmp";
           File f1 = new File(dirname);
           if (f1.isDirectory()) {
             System.out.println("目录" + dirname);
             String s[] = f1.list();
             for (int i = 0; i < s.length; i++) {
               File f = new File(dirname + "/" + s[i]);
               if (f.isDirectory()) {
                 System.out.println(s[i] + "是一个目录");
               } else {
                 System.out.println(s[i] + "是一个文件");
               }
             }
           } else {
             System.out.println(dirname + "不是一个目录");
           }
         }
       }
      
    • 删除目录或文件 可以调用java.io.File.delete()方法

        import java.io.File;
      
        public class DeleteFileDemo {
          public static void main(String args[]) {
            File folder = new File("/tmp/java/");
            deleteFolder(folder);
          }
          //删除文件及目录
          piblic static void deleteFolder(File folder) {
            File[] files = folder.listFiles();
            	if(files!=null) {
            	  for(File f: files) {
            	    if(f.isDirectory()) {
            	      deleteFolder(f);
            	    } else {
            	      f.delete();
            	    }
            	  }
            	}
            	folder.delete();
          }
        }
  • 相关阅读:
    有感:假设在透明的竞争条件下的中国软件企业
    庆祝一下:www.pinstudy.com在GOOGLE 上的PR值为:3
    性能最大化ΔΣ 转换器
    静态时序分析(STA,Static Timing Analysis)基础与应用3
    云计算 Cloud Computing 简介
    CORDIC算法
    Computer Science 计算机科学与技术系 重要国际学术会议
    云上的安全 Cloud Technology
    Electronic Engineering 电子工程系 信息与通信工程一级学科 重要国际学术会议汇总
    Microelectronic 微纳电子学系 重要国际学术会议
  • 原文地址:https://www.cnblogs.com/yfife/p/7397853.html
Copyright © 2011-2022 走看看