• 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();
          }
        }
  • 相关阅读:
    动态属性 的简单思考
    千发 邮件营销小工具 完全免费
    基于角色的代码权限
    VS2005对NHibernate映射文件的智能感知功能
    在ASP.NET中使用脚本代码保护功能
    ASP.NET 开发, PageBase, ModuleBase
    在自定义HttpHandler中使用Session
    C# 应用程序许可控制
    TCE条件表达式
    NHibernate 基本使用(一对一、组件、一对多)
  • 原文地址:https://www.cnblogs.com/yfife/p/7397853.html
Copyright © 2020-2023  润新知