zoukankan      html  css  js  c++  java
  • Io流的使用

     

    file的使用

    1. 文件流的使用

      • FileInpunStream  FileOutOputStream   ----------字符流
      • FileReader Filewriter --------字节流  

    如下代码读取文件的内容并将其输入显示器上

    package com.nanjing.file;
    
    import java.io.FileReader;
    
    public class TestFileReader {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            FileReader fr=null;
            try {
                fr=new FileReader("d:/2.txt");
                int cnt=0;
                int ch;
                while(-1!=(ch=fr.read())){
                    System.out.print((char)ch);
                    ++cnt;
                }
                System.out.printf("总共从1.txt中读取了%d个字节",cnt);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
    }
    package com.nanjing.file;
    import java.io.FileInputStream;
    import java.io.InputStream;
    public class TestFileInputStreamr {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            InputStream fr=null;
            try {
                fr=new FileInputStream("d:/2.txt");
                int cnt=0;
                int ch;
                while(-1!=(ch=fr.read())){
                    System.out.print((char)ch);
                    ++cnt;
                }
                System.out.printf("总共从1.txt中读取了%d个字节",cnt);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    
    }
    • InputStream 和 OutputStream

    1. FileInpunStream是InputStream的子类,因为InputStream是一个抽象类。对是一个抽象类,我们要使用他的子类来new 对象,当然我们也可以这样

    Reader fr=null;父类的引用指向子类的对象。

    2. FileInpuntStream将文件按字节读取,所以即使有汉字会乱码。

    3. public FileInpunStream(String FileName)一个常用函数,就是连接文件的函数。

    4. FileOutputStream同理 

    5. / \ 在字符串里面使用

    • Reader 和 Writer

    1.FileReader是Reader的子类与上面基本相似

    2.FileReader是将文件按字符为单位所以不会乱码。

    3.public FileReader(String FileName)

    4.Writer类似

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    上面二者的区别???

    InputStream 和 OutputStream VS Reader 和 Writer

    1. InputStream 和 OutputStream 可以完成所以格式文件的copy
    2. Reader 和 Writer只能完成文本文件的copy
    3. 汉字乱码问题
    import java.io.*;
    
    public class TestFileInputStreamOutputStreamCopy
    {
        public static void main(String[] args)
        {
            FileInputStream fi = null;
            FileOutputStream fo = null;
            
            try
            {
                fi = new FileInputStream("E:\综艺\歌曲\1.mp3");    
                fo = new FileOutputStream("d:/share/Output.txt"); //可以用QQ音乐打开,成功了 
                int ch;
                
                while (-1 != (ch=fi.read()))
                {
                    fo.write(ch);
                }
            }
            catch (FileNotFoundException e)
            {
                System.out.println("文件没有找到!");
                System.exit(-1);
            }
            catch(IOException e)
            {
                System.out.println("文件读写错误!");
                System.exit(-1);
            }
            finally
            {
                try
                {
                    if (null != fi)
                    {
                        fi.close();
                        fi = null;
                    }
                    if (null != fo)
                    {    
                        fo.close();
                        fo = null;
                    }
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                    System.exit(-1);
                }
            }
            
            System.out.println("文件复制成功!");
        }    
    }
    import java.io.*; 
    
    public class TestFileReaderWriterCopy
    {
        public static void main(String[] args)
        {
            FileReader fi = null;
            FileWriter fo = null;
            try
            {
                fi = new FileReader("E:\综艺\歌曲\1.mp3");    
                fo = new FileWriter("d:/share/Output.txt");  //Output.txt用QQ音乐打开失败! 本程序证明了FileWriter 和 FileReader 无法完成视频文件的赋值,实际上FileWriter 和 FileReader 只能完成文本文件的复制
                int ch;
                while (-1 != (ch=fi.read()))
                {
                    fo.write(ch);
                }
            }
            catch (FileNotFoundException e)
            {
                System.out.println("文件没有找到!");
                System.exit(-1);
            }
            catch(IOException e)
            {
                System.out.println("文件读写错误!");
                System.exit(-1);
            }
            finally
            {
                try
                {
                    if (null != fi)
                    {
                        fi.close();
                        fi = null;
                    }
                    if (null != fo)
                    {    
                        fo.close();
                        fo = null;
                    }
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                    System.exit(-1);
                }
            }
            System.out.println("文件复制成功!");
        }    
    }
    加油啦!加油鸭,冲鸭!!!
  • 相关阅读:
    坑爹啊 StringDictionary 居然是不区分大小写的
    .NET平台OLEDB类型映射到Access数据类型 (转)
    国内省选乱做
    计算几何做题记录
    P6634 [ZJOI2020] 密码 解题报告
    AT2704 [AGC019E] Shuffle and Swap 解题报告
    ARC110F Esoswap 解题报告
    P6631 [ZJOI2020] 序列 解题报告
    P6633 [ZJOI2020] 抽卡 解题报告
    CF1605F PalindORme 解题报告
  • 原文地址:https://www.cnblogs.com/clarencezzh/p/4868390.html
Copyright © 2011-2022 走看看