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

    Java读文件

    package 天才白痴梦;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.RandomAccessFile;
    import java.io.Reader;
    
    public class JavaIO {
        
        /**
         * 采用的是操作系统底层默认的编码方式,GBK等,非UTF8
         * */
        
        /**
         * 以字节为单位读取文件内容,常用于读取二进制文件,比如图片、影像、声音等文件
         * */
        public static void readFileByBytes(String filename) {
            File file=new File(filename);
            FileInputStream in=null;
            try {
                System.out.println("以字节为单位读取文件,一次读一个字节: ");
                in=new FileInputStream(file);
                int temp=0;
                while ((temp=in.read()) != -1) {
                    System.out.println(temp);
                }
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
                return ;
            }
            try {
                System.out.println("以字节为单位读取文件,一次读多个字节: ");
                byte[] temp=new byte[100];
                int byteread=0;
                in=new FileInputStream(file);
                JavaIO.showAvailableBytes(in);
                while ((byteread=in.read(temp)) != -1) {
                    System.out.write(temp,0,byteread);
                }
            } catch (Exception e1) {
                e1.printStackTrace();
            } finally {
                if (in != null) {
                    try {
                        in.close();
                    } catch (IOException e1) {
                        
                    }
                }
            }
        }
        /**
         * 以字符为单位读取文件,常用于读文本,数字等类型的文件
         * */
        public static void readFileByChar(String filename) {
            File file=new File(filename);
            Reader reader=null;
            try {
                System.out.println("以字符为单位读取文件内容,一次一个字节:");
                //InputStreamReader类:是字节向字符转换的桥梁
                reader=new InputStreamReader(new FileInputStream(file));
                int temp;
                while ((temp=reader.read()) != -1) {
                    if (((char)temp) != '
    ') {
                        System.out.println((char)temp);
                    }
                } 
                reader.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
                System.out.println("以字符为单位读取文件内容,一次读多个字节: ");
                char[] temp=new char[30];
                int charread=0;
                reader=new InputStreamReader(new FileInputStream(filename));
                while ((charread=reader.read(temp)) != -1) {
                    if ((charread == temp.length) && (temp[temp.length-1]!='
    ')) {
                        System.out.println(temp);
                    } else {
                        for (int i=0; i<charread; i++) {
                            if (temp[i] == '
    ') {
                                break;
                            } else {
                                System.out.println(temp[i]);
                            }
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (IOException e) {
                        
                    }
                }
            }
        }
        /**
         * 以行为单位读取文件,常用于读面向行的格式化文件
         * */
        public static void readFileByLine(String filename) {
            File file=new File(filename);
            BufferedReader reader=null;
            try {
                System.out.println("以行为单位读取文件内容,一次读一整行: ");
                reader=new BufferedReader(new FileReader(file));
                String temp=null;
                int line=1;
                while ((temp=reader.readLine()) != null) {
                    System.out.println("line " + line + ": " + temp);
                    line++;
                }
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (IOException e) {
                        
                    }
                }
            }
        }
        /**
         * 随机读取文件内容
         * */
        public static void readFileByRandomAccess(String filename) {
            RandomAccessFile randomfile=null;
            try {
                System.out.println("随机读取一段文件内容");
                randomfile=new RandomAccessFile(filename,"r");
                long fileLength=randomfile.length();
                int beginIndex=(fileLength > 4 ? 4 : 0);
                randomfile.seek(beginIndex);
                byte[] bytes=new byte[10];
                int byteread=0;
                while ((byteread=randomfile.read(bytes)) != -1) {
                    System.out.write(bytes,0,byteread);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (randomfile != null) {
                    try {
                        randomfile.close();
                    } catch (IOException e) {
                        
                    }
                }
            }
        }
        private static void showAvailableBytes(InputStream in) {
            try {
                System.out.println("当前字节输入流中的字节数为:" + in.available());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        public static void main(String[] args) {
            String filename="E:\BaiYiShaoNian.txt";
            JavaIO.readFileByBytes(filename);
            JavaIO.readFileByChar(filename);
            JavaIO.readFileByLine(filename);
            JavaIO.readFileByRandomAccess(filename);
        }
    }

    Java写文件

    package 天才白痴梦;
    
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    
    public class JavaIO2 {
    
        public static void main(String[] args) throws IOException {
            String Path="E:\天才白痴梦\JAVA";
            File file=new File("E:\天才白痴梦\JAVA","BaiYiShaoNian.txt");
            if (!file.exists()) {
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            /**
             * Java写入文件的三种方法
             * */
            FileOutputStream fos=null;
            BufferedWriter bw=null;
            FileWriter fw=null;
            int value=1000;
            
            try {
                fos=new FileOutputStream(new File(Path+"fos.txt"));
                long begin=System.currentTimeMillis();
                for (int i=1; i<=value; i++) {
                    fos.write(5);
                }
                long end=System.currentTimeMillis();
                System.out.println("TheCostTime of FileOutputStream is : " + (end-begin));
                fos.close();
                
                bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(Path+"br.txt")),"UTF8"));
                begin=System.currentTimeMillis();
                for (int i=1; i<=value; i++) {
                    bw.write(5);
                    bw.newLine();
                }
                bw.close();
                end=System.currentTimeMillis();
                System.out.println("TheCostTime of BufferedWriter is : " + (end-begin));
                
                fw=new FileWriter(Path+"fw.txt");
                begin=System.currentTimeMillis();
                for (int i=1; i<=value; i++) {
                    fw.write(5);                
                }
                fw.close();
                end=System.currentTimeMillis();
                System.out.println("TheCostTime of FileWriter is : " + (end-begin));
                
                
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                try {
                    fos.close(); //FileOutputStream
                    bw.close(); //BufferedWriter
                    fw.close(); //FileWriter
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            
        }
    }
  • 相关阅读:
    mysql使用group by查询报错SELECT list is not in GROUP BY clause and contains nonaggregated column...解决方案
    CentOS7 使用minikube 搭建kubernetes 学习环境
    5
    4
    3
    2
    1
    8
    7
    Algorithm
  • 原文地址:https://www.cnblogs.com/longqingyang/p/5547250.html
Copyright © 2011-2022 走看看