0
点赞
收藏
分享

微信扫一扫

java-io

文件拷贝

1.一次读一个字节(拷贝时间很慢):

//缺点:拷贝时间很慢。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class practice10 {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("a.text");//读取文件
        FileOutputStream fos=new FileOutputStream("b.text");//创建一个文件
        int b;
        while ((b=fis.read())!=-1){
            fos.write(b);//将读取的文件拷贝到创建的文件中
        }
        fos.close();//后开启的先释放
        fis.close();//先开启的最后释放
    }
}

2.一次读取多个字节(拷贝时间很快):

import java.io.FileInputStream;
import java.io.IOException;
//优点:拷贝时间很快
public class practice11 {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("a.text");
        byte[] bytes=new byte[2];//定义一个长度为2的数组

        int read1 = fis.read(bytes);//.read()方法会将读取到的内容传递到参数中
        System.out.println(new String(bytes,0,read1));//讲读取到的内容转换成字符串并打印

        int read2= fis.read(bytes);
        System.out.println(new String(bytes,0,read2));

        int read3= fis.read(bytes);
        System.out.println(new String(bytes,0,read3));
    }
}

3.完整优化后的代码实现:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class practice12 {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("a.text");
        FileOutputStream fos=new FileOutputStream("b.text");
        
        int len;
        byte[] bytes=new byte[1024*1024*5];
        while((len=fis.read(bytes))!=-1){
            fos.write(bytes);
        }
        fos.close();
        fis.close();
    }
}

字符集

1.在计算机中,任意的数据都是以二进制的形式来存储的。

2.计算机中最小的存储单元是一个字节。

3.ASCII字符集中,一个英文占一个字节。

4.简体中文版Windows,默认使用GBK字符集。

5.GBK字符集完全兼容ASCII字符集。

一个英文占一个字节,二进制第一位是0;

一个中文占两个字节,二进制高位字节的第一位是1。

6.Unicode字符集的UTF-8编码格式:

(1)一个英文占一个字节,二进制第一位是0,转成十进制是正数;

(2)一个中文占三个字节,二进制第一位是1,第一个字节转成十进制是负数。

字符输入流

1.read()方法不带参数的字符输入流:

import java.io.FileReader;
import java.io.IOException;

public class Practice01 {
    public static void main(String[] args) throws IOException {
        FileReader fr=new FileReader("c.text");
        int a;
        while ((a=fr.read())!=-1){
            System.out.print((char)a);
        }
        fr.close();

    }
}

2.read()方法带参数的字符输入流:

import java.io.FileReader;
import java.io.IOException;

public class Practice02 {
    public static void main(String[] args) throws IOException {
        FileReader fr=new FileReader("c.text");
        char[] chars =new char[2];
        int b;
        while ((b=fr.read(chars))!=-1){
            System.out.print(new String(chars,0,b));
        }
    }
}

字符输出流

字符输入流的练习:

import java.io.FileWriter;
import java.io.IOException;

public class Practice03 {
    public static void main(String[] args) throws IOException {
        FileWriter fw=new FileWriter("d.text");
        fw.write("666");
        char[] chars ={'你','好'};
        fw.write(chars);
        fw.close();
    }
}

对象操作输出流

举报

相关推荐

Java-IO(二)

Java-IO流

Java-IO流(文件操作)

Java-IO流的总结-字节流

java IO

Java IO

⛳ Java - IO

0 条评论