zoukankan      html  css  js  c++  java
  • 文件读写总结

    对如图所示txt文件进行读写操作:

    (1)按照字节读取,每次读取一个字节:

    File file = new File("C:\text.txt");  
            InputStream in = null;  
            try {  
                System.out.println("以字节为单位读取文件内容,一次读一个字节:");  
                // 一次读一个字节  
                in = new FileInputStream(file);  
                int tempbyte;  
                while ((tempbyte = in.read()) != -1) {  
                    System.out.println(tempbyte);  
                }  
                in.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  

    (2)按照字节读取,一次读取多个字节:

    File file = new File("C:\text.txt");
    InputStream in = null;
    try {
    System.out.println("以字节为单位读取文件内容,一次读多个字节:");
    // 一次读多个字节
    byte[] tempbytes = new byte[5];
    int byteread = 0;
    in = new FileInputStream(file);
    // 读入多个字节到字节数组中,byteread为一次读入的字节数
    while ((byteread = in.read(tempbytes)) != -1) {
    for(int i=0;i<byteread;i++){
    if(tempbytes[i]!=0){
    System.out.print(tempbytes[i]+" ");
    }
    }
    System.out.println();
    }
    } catch (Exception e1) {
    e1.printStackTrace();
    } finally {
    if (in != null) {
    try {
    in.close();
    } catch (IOException e1) {
    }
    }
    }

    (3)以字符为单位读取文件,一次读取一个字符:

    File file = new File("C:\text.txt");  
            Reader reader = null;  
            try {  
                System.out.println("以字符为单位读取文件内容,一次读一个字节:");  
                // 一次读一个字符  
                reader = new InputStreamReader(new FileInputStream(file));  
                int tempchar;  
                while ((tempchar = reader.read()) != -1) {  
                    // 对于windows下,
    这两个字符在一起时,表示一个换行。  
                    // 但如果这两个字符分开显示时,会换两次行。  
                    // 因此,屏蔽掉
    ,或者屏蔽
    。否则,将会多出很多空行。  
                    if (((char)tempchar) != '
    ') {  
                        System.out.print((char)tempchar);  
                    }  
                }  
                reader.close();  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  

     

    (4)以字符为单位读取文件,一次读取多个字符:

    File file = new File("C:\text.txt");  
            Reader reader = null;  
            try {  
                System.out.println("以字符为单位读取文件内容,一次读多个字节:");  
                // 一次读多个字符  
                char[] tempchars = new char[30];  
                int charread = 0;  
                reader = new InputStreamReader(new FileInputStream(file));  
                // 读入多个字符到字符数组中,charread为一次读取字符数  
                while ((charread = reader.read(tempchars)) != -1) {  
                    // 同样屏蔽掉
    不显示  
                    if ((charread == tempchars.length)  
                            && (tempchars[tempchars.length - 1] != '
    ')) {  
                        System.out.print(tempchars);  
                    } else {  
                        for (int i = 0; i < charread; i++) {  
                            if (tempchars[i] == '
    ') {  
                                continue;  
                            } else {  
                                System.out.print(tempchars[i]);  
                            }  
                        }  
                    }  
                }  
      
            } catch (Exception e1) {  
                e1.printStackTrace();  
            } finally {  
                if (reader != null) {  
                    try {  
                        reader.close();  
                    } catch (IOException e1) {  
                    }  
                }  
            }  

     (5)以行为单位读取文件:

    File file = new File("C:\text.txt");  
            BufferedReader reader = null;  
            try {  
                System.out.println("以行为单位读取文件内容,一次读一整行:");  
                reader = new BufferedReader(new FileReader(file));  
                String tempString = null;  
                int line = 1;  
                // 一次读入一行,直到读入null为文件结束  
                while ((tempString = reader.readLine()) != null) {  
                    // 显示行号  
                    System.out.println("line " + line + ": " + tempString);  
                    line++;  
                }  
                reader.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            } finally {  
                if (reader != null) {  
                    try {  
                        reader.close();  
                    } catch (IOException e1) {  
                    }  
                }  
            }  

    (6)对于一个英语句子,可以用正则表达式:

    String[] words = string.split("[^(a-zA-Z)]+");
    来将句子转化为英文单词组成的数组。
  • 相关阅读:
    二进制位运算
    Leetcode 373. Find K Pairs with Smallest Sums
    priority_queue的用法
    Leetcode 110. Balanced Binary Tree
    Leetcode 104. Maximum Depth of Binary Tree
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 64. Minimum Path Sum
    Leetcode 63. Unique Paths II
    经典的递归练习
    案例:java中的基本排序
  • 原文地址:https://www.cnblogs.com/123456www/p/10989798.html
Copyright © 2011-2022 走看看