【Java】字符流

一个汉字存储:
如果是GBK编码,占用2个字节
如果是UTF-8编码,占用3个字节

package com.su;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Random;


public class test {
    public static void main(String[] args) throws IOException{
        String str = "中国";
        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));
        byte[] bytes1 = str.getBytes(StandardCharsets.UTF_8);
        System.out.println(Arrays.toString(bytes1));
        byte[] bytes2 = str.getBytes("GBK");
        System.out.println(Arrays.toString(bytes2));

    }


}

package com.su;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Random;


public class test {
    public static void main(String[] args) throws IOException{
        FileOutputStream fileOutputStream = new FileOutputStream("test.txt");

        //创建字符输出流对象
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);

        outputStreamWriter.write("中国");

        outputStreamWriter.close();

        //创建字符输入流对象
        InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("test.txt"));
        int c;
        while((c = inputStreamReader.read()) != -1){
            System.out.print((char) c);
        }
        inputStreamReader.close();

    }


}

写数据

在这里插入图片描述

package com.su;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Random;


public class test {
    public static void main(String[] args) throws IOException{
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("test.txt"));

        //第一种:写入一个字符
        outputStreamWriter.write(97);
        outputStreamWriter.write('A');
        outputStreamWriter.flush();//刷新流

        //第二种:写入一个字符数组
        char arr[] = {'h','e','l','l','o',',','w','o','r','l','d','!'};
        outputStreamWriter.write(arr);

        //第三种:写入一个字符数组一部分
        outputStreamWriter.write(arr,6,6);

        outputStreamWriter.write('\n');
        //第四种:写入一个字符串
        outputStreamWriter.write("你好,中国");

        outputStreamWriter.write('\n');
        //第五种:写入一个字符串一部分
        outputStreamWriter.write("好像爱这个世界",1,3);




        outputStreamWriter.close();

    }


}

读数据

在这里插入图片描述

package com.su;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Random;


public class test {
    public static void main(String[] args) throws IOException{
        InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("Book.java"));

        //一次读一个字符
/*        int temp;
        while((temp = inputStreamReader.read()) != -1)
            System.out.print((char)temp);*/

        //一次读一个字符数组
        char arr[] = new char[1024];
        int len;
        while((len = inputStreamReader.read(arr)) != -1){
            System.out.print(new String(arr,0,len));
        }
        inputStreamReader.close();

    }


}

字符缓冲流

package com.su;

import java.io.*;



public class test {
    public static void main(String[] args) throws IOException{
        FileWriter fileWriter = new FileWriter("test.txt");
        BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
        bufferedWriter.write("hello");
        bufferedWriter.write(",world");
        bufferedWriter.close();

        BufferedReader bufferedReader = new BufferedReader(new FileReader("test.txt"));
        //一次读取一个字符
/*        int temp;
        while ((temp = bufferedReader.read()) != -1){
            System.out.print((char)temp);
        }*/

        //一次读取一个字符数组
        char arr[] = new char[1024];
        int len;
        while((len = bufferedReader.read(arr)) != -1){
            System.out.print(new String(arr,0,len));
        }


        bufferedReader.close();
    }


}

package com.su;

import java.io.*;



public class test {
    public static void main(String[] args) throws IOException{
        BufferedReader bufferedReader = new BufferedReader(new FileReader("demo01//src//com//su//Book.java"));
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("e://Book.java"));

        char arr[] = new char[1024];
        int len;
        while((len = bufferedReader.read(arr)) != -1){
            bufferedWriter.write(arr,0,len);
            System.out.print(new String(arr,0,len));
        }

        bufferedReader.close();
        bufferedWriter.close();
    }


}

一次写一行

package com.su;

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

public class demo {
    public static void main(String[] args) throws IOException {
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("demo.txt"));
        for (int i = 0; i < 10; i++) {
            bufferedWriter.write("hello"+i);
            bufferedWriter.newLine();
            bufferedWriter.flush();
        }
        bufferedWriter.close();
    }
}

package com.su;

import java.io.*;

public class demo {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new FileReader("demo.txt"));

        String line;
        while ((line = bufferedReader.readLine()) != null){
            System.out.println(line);
        }

        bufferedReader.close();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值