zoukankan      html  css  js  c++  java
  • 文件IO流

    //字节流读写含有中文的文本文件会出现问题,我在实践中居然没有检验出该问题,新人小菜,希望大家能指出:
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    
    
    public class Wenjian {
        
        public static void main(String[] args) throws IOException, InterruptedException {
    //        字节流1个字节复制纯文本 可以加true
    //        FileInputStream fis = new FileInputStream("tt.txt");
    //        FileOutputStream fos = new FileOutputStream("C:\Users\issuser\Desktop\ttt.txt",true);
    //        int rr = 0;
    //        while((rr=fis.read())!=-1){
    //            fos.write(rr);
    //        }
    //        fis.close();
    //        fos.close();
    
    //        字节流1个字节复制非纯文本 不能加true 在结尾加字节会导致,文件不断累加
    //        FileInputStream fis = new FileInputStream("美女1.jpg");
    //        FileOutputStream fos = new FileOutputStream("C:\Users\issuser\Desktop\meinv.jpg");
    //        int rr = 0;
    //        while((rr=fis.read())!=-1){
    //            fos.write(rr);
    //        }
    //        fis.close();
    //        fos.close();
    
            //字节流多个个字节复制非纯文本 不能加true 在结尾加字节会导致,文件不断累加
    //        FileInputStream fis = new FileInputStream("美女1.jpg");
    //        FileOutputStream fos = new FileOutputStream("C:\Users\issuser\Desktop\meinv1.jpg");
    //        int rr = 0;
    //        byte[] arr = new byte[1024*8];
    //        while((rr=fis.read(arr))!=-1){
    //            fos.write(arr,0,rr);
    //        }
    //        fis.close();
    //        fos.close();
            
            //字节流多个个字节复制非纯文本 不能加true 在结尾加字节会导致,文件不断累加   应该有读取中文问题
            FileInputStream fis = new FileInputStream("checked.html");
            FileOutputStream fos = new FileOutputStream("C:\Users\issuser\Desktop\xx.html");
            int rr = 0;
            byte[] arr = new byte[5];
            while((rr=fis.read(arr))!=-1){
                fos.write(arr,0,rr);
            }
            fis.close();
            fos.close();
            
            //字节流Buff复制非纯文本 不能加true 在结尾加字节会导致,文件不断累加
    //        BufferedInputStream bi = new BufferedInputStream(new FileInputStream("美女1.jpg"));
    //        BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream("C:\Users\issuser\Desktop\meinv1.jpg"));
    //        int rr = 0;
    //        while((rr=bi.read())!=-1){
    //            bo.write(rr);
    //        }
    //        bi.close();
    //        bo.close();
        
            //字符流1个字符复制 可以加true
    //        FileReader fr = new FileReader("tt.txt");
    //        FileWriter fw = new FileWriter("C:\Users\issuser\Desktop\ttt.txt",true);
    //        int rr=0;
    //        while((rr=fr.read())!=-1){
    //            fw.write(rr);
    //        }
    //        fr.close();
    //        fw.close();
        
            //字符流多个字符复制 可以加true
    //        FileReader fr = new FileReader("tt.txt");
    //        FileWriter fw = new FileWriter("C:\Users\issuser\Desktop\ttt.txt",true);
    //        int rr=0;
    //        char[] arr = new char[1024];
    //        while((rr=fr.read(arr))!=-1){
    //            fw.write(arr,0,rr);
    //        }
    //        fr.close();
    //        fw.close();
        
            //字符流Buffer复制 可以加true
    //        BufferedReader br = new BufferedReader(new FileReader("tt.txt"));
    //        BufferedWriter bw = new BufferedWriter(new FileWriter("C:\Users\issuser\Desktop\ttt.txt"));
    //        
    //        int rr = 0;
    //        while((rr=br.read())!=-1){
    //            bw.write(rr);
    //        }
    //        br.close();
    //        bw.close();
                    
            // 创建输入流
    //                FileReader fr = new FileReader("tt.txt");
    //                FileWriter fw = new FileWriter("C:\Users\issuser\Desktop\ttt.txt");
    //                // 带缓冲的字符流
    //                BufferedReader br = new BufferedReader(fr);
    //                BufferedWriter bw = new BufferedWriter(fw);
    //
    //                String c;
    //                while ((c = br.readLine()) != null) {  // 没有换行
    //                    bw.write(c);
    //                    // 添加新行
    //                    bw.newLine();       // 跨平台
    //                    // bw.write("
    ");    // 只在Windows下有用
    //                }
    //
    //                // 关闭流
    //                br.close();
    //                bw.close();
    //            }
            
    //        // 创建LineNumberReader对象
    //            LineNumberReader lnr = new LineNumberReader(new FileReader("tt.txt"));
    //            
    //            // 设置当前行号
    //            lnr.setLineNumber(100);
    //            
    //            String line;
    //            while( (line = lnr.readLine()) != null ){
    //                // 获取当前行号
    //                System.out.println(lnr.getLineNumber() + ":" +   line);
    //            }
    //            
    //            // 关闭流
    //            lnr.close();
            InputStreamReader isr = new InputStreamReader(new FileInputStream("utf-8.txt"), "UTF-8");
            OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gbk.txt"), "GBK");
            
        }
    }
  • 相关阅读:
    Java基础面试操作题: 线程问题,写一个死锁(原理:只有互相都等待对方放弃资源才会产生死锁)
    Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件
    Java基础面试操作题:Java代理工厂设计模式 ProxyFactory 有一个Baby类,有Cry行为,Baby可以配一个保姆 但是作为保姆必须遵守保姆协议:能够处理Baby类Cry的行为,如喂奶、哄睡觉。
    Java中 Character方法练习:字符串中英文字母个数 5435abc54abc3AHJ5 正则:matches("[a-zA-Z0-9]{1}")
    Java 练习:字符串反转
    集合类别
    JAVA 后台
    micro focus cobol vs mainframe cobol
    Java 编码
    关于java中char占几个字节,汉字占几个字节
  • 原文地址:https://www.cnblogs.com/lifusen/p/7284240.html
Copyright © 2011-2022 走看看