java 基础 IO字符流

1.汉字存储占多少字节:

复制代码
public class IoTest {
    public static void main(String[] args) {

        String str = "abcd";

        String str1 = "吴危险学java";

        System.out.println("字符串转为byte数组:" + Arrays.toString(str.getBytes()));
        System.out.println(Arrays.toString(str1.getBytes(StandardCharsets.UTF_8)));

    }
}

2.编码和解码:

复制代码
public class IoTest {
    public static void main(String[] args) {
   
        String s="abcd";
        //我们要把abcd,装入字节数组中
        byte[] bytes = s.getBytes(StandardCharsets.UTF_8);        
        System.out.println(Arrays.toString(bytes));    
       //将byte字节数组,转成字符串类型    
        System.out.println(new String(bytes));
    }
}

3.字符流:

复制代码
package login;

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

/*
将字符串转成字节
 */
public class IoTest {
    public static void main(String[] args) throws IOException {


        OutputStreamWriter outputStreamWriter = new
                OutputStreamWriter(new FileOutputStream("C:\\Users\\Administrator\\IdeaProjects\\mykt\\write.txt"));
        outputStreamWriter.write("已经开始有点晕了");

        System.out.println("写入数据成功");
        outputStreamWriter.close();

        System.out.println("--------------------------");
        System.out.println("开始读取数据");

        InputStreamReader inputStreamReader = new
                InputStreamReader(new FileInputStream("C:\\Users\\Administrator\\IdeaProjects\\mykt\\write.txt"), "utf-8");
        char[] charArr = new char[1024];
        int len;
        while ((len = inputStreamReader.read(charArr)) != -1) {
            System.out.println(new String(charArr, 0, len));

        }
        inputStreamReader.close();
    }
}

写入数据总结:

首先new 出fileoutputstream(路径),可不必new出实例对象,直接作为下面的参数

再new outputstreamwriter()再将第一步new的fileoutputstream(路径)

new outputstreamwriter(new的fileoutputstream(路径)),new出实例对象后

.出write()方法,括号内即可写要写入的数据,最后一步,用实例对象,关闭资源

读取数据总结:

首先new 出fileinputstream(路径),可不必new出实例对象,直接作为下面的参数

再new inputstreamreader()再将第一步new的fileinputstream(路径)

new inputstreamreader(new的fileinputstream(路径)) new出实例对象后

用实例对象.出read()方法,该方法若没有读取到数据返回值为-1,可用这个返回值,做循环条件,再创建整形变量,len,来计算数据长度

字节流<字符流

4.字符流5种写入方式:

5.字符流读取数据:

6.数组转为字符串类型:Array.toString(某种类型的数组)

复制代码
package login;

import java.util.Arrays;

public class Test2 {
    public static void main(String[] args) {
        char[] chars={'2','2','4','5'};
        int[] intArr={1,2,34,5,6,7};
        
        System.out.println(Arrays.toString(chars));
        System.out.println(Arrays.toString(intArr));
    }
}

7.FileReader类读取数据:

复制代码
package login;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Test15 {
    public static void main(String[] args) throws IOException {
        FileReader fileReader = new FileReader("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test14.txt");
        int len;
        char[] chars = new char[1024];
        while((len= fileReader.read(chars))!=-1){
            System.out.println(new String(chars,0,len));
        }
        fileReader.close();
    }
}

8.FileWriter类写入数据:

复制代码
package login;

import java.io.*;

public class Test15 {
    public static void main(String[] args) throws IOException {
        FileWriter fileWriter = new FileWriter("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt");

        fileWriter.write("可恶之前学的,不如后面的这好用");  
    }
}

9.字符缓冲流:

复制代码
package login;

import java.io.*;

public class Test15 {

    public static void main(String[] args) throws IOException {

        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
        //每次以8k缓冲容量大小写入数据到磁盘中
        bufferedWriter.write("hhhhhhhhh");
        bufferedWriter.close();


        BufferedReader bufferedReader =
                new BufferedReader(new FileReader("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
        char[] chars = new char[1024];
        int len;
        while((len=bufferedReader.read(chars))!=-1){
            System.out.println(new String(chars,0,len));
        }
        bufferedReader.close();


    }
}

10.字符缓冲流换行操作

写入换行:newLine()

复制代码
package login;

import java.io.*;

public class Test15 {

    public static void main(String[] args) throws IOException {

        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
        //每次以8k缓冲容量大小写入数据到磁盘中
        for (int i = 0; i < 10; i++) {
            bufferedWriter.write("第"+i+"行");
            bufferedWriter.newLine();
        }

        bufferedWriter.close();


        BufferedReader bufferedReader =
                new BufferedReader(new FileReader("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
        char[] chars = new char[1024];
        int len;
        while((len=bufferedReader.read(chars))!=-1){
            System.out.println(new String(chars,0,len));
        }
        bufferedReader.close();


    }
}

读取换行:readLine()

复制代码
package login;

import java.io.*;

public class Test15 {

    public static void main(String[] args) throws IOException {

//        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
//        //每次以8k缓冲容量大小写入数据到磁盘中
//        for (int i = 0; i < 10; i++) {
//            bufferedWriter.write("第"+i+"行");
//            bufferedWriter.newLine();
//        }
//
//        bufferedWriter.close();


        BufferedReader bufferedReader =
                new BufferedReader(new FileReader("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
       String s;
        while((s=bufferedReader.readLine())!=null){
            System.out.println(s);
       }
        bufferedReader.close();

    }
}

11.拷贝复制java文件:

复制代码
package login;

import java.io.*;

public class Test15 {
    /*
    将E:\wwx\xx\目录下的Student.java复制到E:\wwx\recieve中
     */
    public static void main(String[] args) throws IOException {

        BufferedReader bufferedReader = new BufferedReader(new FileReader("E:\\wwx\\xx\\Student.java"));

        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("E:\\wwx\\recieve\\Student.java"));

        String s;
        while ((s = bufferedReader.readLine()) != null) {
            bufferedWriter.write(s);
            bufferedWriter.newLine();//该方法会根据电脑系统自动换行
        }
        bufferedReader.close();
        bufferedWriter.close();

    }
}
相关推荐
A 计算机毕业设计-小途8 分钟前
大四零基础用Vue+ElementUI一周做完化妆品推荐系统?
java·大数据·hadoop·python·spark·毕业设计·毕设
岁忧2 小时前
(nice!!!)(LeetCode 每日一题) 679. 24 点游戏 (深度优先搜索)
java·c++·leetcode·游戏·go·深度优先
四维碎片4 小时前
【Qt】线程池与全局信号实现异步协作
开发语言·qt·ui·visual studio
IT码农-爱吃辣条4 小时前
Three.js 初级教程大全
开发语言·javascript·three.js
☺����5 小时前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
猿究院--王升5 小时前
jvm三色标记
java·jvm·算法
染翰5 小时前
lua入门以及在Redis中的应用
开发语言·redis·lua
王者鳜錸5 小时前
PYTHON让繁琐的工作自动化-函数
开发语言·python·自动化
妮妮学代码5 小时前
c#:TCP服务端管理类
java·tcp/ip·c#
兔老大RabbitMQ6 小时前
git pull origin master失败
java·开发语言·git