• java 基础 IO字符流


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

    1. public class IoTest {
    2. public static void main(String[] args) {
    3. String str = "abcd";
    4. String str1 = "吴危险学java";
    5. System.out.println("字符串转为byte数组:" + Arrays.toString(str.getBytes()));
    6. System.out.println(Arrays.toString(str1.getBytes(StandardCharsets.UTF_8)));
    7. }
    8. }

    2.编码和解码: 

     

     

    1. public class IoTest {
    2. public static void main(String[] args) {
    3. String s="abcd";
    4. //我们要把abcd,装入字节数组中
    5. byte[] bytes = s.getBytes(StandardCharsets.UTF_8);
    6. System.out.println(Arrays.toString(bytes));
    7. //将byte字节数组,转成字符串类型
    8. System.out.println(new String(bytes));
    9. }
    10. }

     

    3.字符流:

    1. package login;
    2. import java.io.*;
    3. import java.nio.charset.StandardCharsets;
    4. import java.util.Arrays;
    5. /*
    6. 将字符串转成字节
    7. */
    8. public class IoTest {
    9. public static void main(String[] args) throws IOException {
    10. OutputStreamWriter outputStreamWriter = new
    11. OutputStreamWriter(new FileOutputStream("C:\\Users\\Administrator\\IdeaProjects\\mykt\\write.txt"));
    12. outputStreamWriter.write("已经开始有点晕了");
    13. System.out.println("写入数据成功");
    14. outputStreamWriter.close();
    15. System.out.println("--------------------------");
    16. System.out.println("开始读取数据");
    17. InputStreamReader inputStreamReader = new
    18. InputStreamReader(new FileInputStream("C:\\Users\\Administrator\\IdeaProjects\\mykt\\write.txt"), "utf-8");
    19. char[] charArr = new char[1024];
    20. int len;
    21. while ((len = inputStreamReader.read(charArr)) != -1) {
    22. System.out.println(new String(charArr, 0, len));
    23. }
    24. inputStreamReader.close();
    25. }
    26. }

     

    写入数据总结:

    首先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(某种类型的数组)

    1. package login;
    2. import java.util.Arrays;
    3. public class Test2 {
    4. public static void main(String[] args) {
    5. char[] chars={'2','2','4','5'};
    6. int[] intArr={1,2,34,5,6,7};
    7. System.out.println(Arrays.toString(chars));
    8. System.out.println(Arrays.toString(intArr));
    9. }
    10. }

    7.FileReader类读取数据:

    1. package login;
    2. import java.io.FileNotFoundException;
    3. import java.io.FileReader;
    4. import java.io.IOException;
    5. public class Test15 {
    6. public static void main(String[] args) throws IOException {
    7. FileReader fileReader = new FileReader("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test14.txt");
    8. int len;
    9. char[] chars = new char[1024];
    10. while((len= fileReader.read(chars))!=-1){
    11. System.out.println(new String(chars,0,len));
    12. }
    13. fileReader.close();
    14. }
    15. }

     

     

    8.FileWriter类写入数据: 

    1. package login;
    2. import java.io.*;
    3. public class Test15 {
    4. public static void main(String[] args) throws IOException {
    5. FileWriter fileWriter = new FileWriter("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt");
    6. fileWriter.write("可恶之前学的,不如后面的这好用");
    7. }
    8. }

    9.字符缓冲流:

    1. package login;
    2. import java.io.*;
    3. public class Test15 {
    4. public static void main(String[] args) throws IOException {
    5. BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
    6. //每次以8k缓冲容量大小写入数据到磁盘中
    7. bufferedWriter.write("hhhhhhhhh");
    8. bufferedWriter.close();
    9. BufferedReader bufferedReader =
    10. new BufferedReader(new FileReader("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
    11. char[] chars = new char[1024];
    12. int len;
    13. while((len=bufferedReader.read(chars))!=-1){
    14. System.out.println(new String(chars,0,len));
    15. }
    16. bufferedReader.close();
    17. }
    18. }

     

    10.字符缓冲流换行操作

     写入换行:newLine()

    1. package login;
    2. import java.io.*;
    3. public class Test15 {
    4. public static void main(String[] args) throws IOException {
    5. BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
    6. //每次以8k缓冲容量大小写入数据到磁盘中
    7. for (int i = 0; i < 10; i++) {
    8. bufferedWriter.write("第"+i+"行");
    9. bufferedWriter.newLine();
    10. }
    11. bufferedWriter.close();
    12. BufferedReader bufferedReader =
    13. new BufferedReader(new FileReader("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
    14. char[] chars = new char[1024];
    15. int len;
    16. while((len=bufferedReader.read(chars))!=-1){
    17. System.out.println(new String(chars,0,len));
    18. }
    19. bufferedReader.close();
    20. }
    21. }

     

     读取换行:readLine()

     

    1. package login;
    2. import java.io.*;
    3. public class Test15 {
    4. public static void main(String[] args) throws IOException {
    5. // BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
    6. // //每次以8k缓冲容量大小写入数据到磁盘中
    7. // for (int i = 0; i < 10; i++) {
    8. // bufferedWriter.write("第"+i+"行");
    9. // bufferedWriter.newLine();
    10. // }
    11. //
    12. // bufferedWriter.close();
    13. BufferedReader bufferedReader =
    14. new BufferedReader(new FileReader("C:\\Users\\Administrator\\IdeaProjects\\mykt\\test15.txt"));
    15. String s;
    16. while((s=bufferedReader.readLine())!=null){
    17. System.out.println(s);
    18. }
    19. bufferedReader.close();
    20. }
    21. }

     

     11.拷贝复制java文件:

    1. package login;
    2. import java.io.*;
    3. public class Test15 {
    4. /*
    5. 将E:\wwx\xx\目录下的Student.java复制到E:\wwx\recieve中
    6. */
    7. public static void main(String[] args) throws IOException {
    8. BufferedReader bufferedReader = new BufferedReader(new FileReader("E:\\wwx\\xx\\Student.java"));
    9. BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("E:\\wwx\\recieve\\Student.java"));
    10. String s;
    11. while ((s = bufferedReader.readLine()) != null) {
    12. bufferedWriter.write(s);
    13. bufferedWriter.newLine();//该方法会根据电脑系统自动换行
    14. }
    15. bufferedReader.close();
    16. bufferedWriter.close();
    17. }
    18. }

  • 相关阅读:
    SpringBoot实现多数据源(三)【AOP + 自定义注解】
    【夜读】提升生活品质的8个建议
    【最新计算机毕业设计】JAVA基于微信小程序的英语学习激励系统
    第三方支付清算的信息流与资金流
    ERP生产作业控制
    MySQL 路由配置以及部署方式
    【ASM】字节码操作 MethodWriter
    Linux环境搭建
    获取一段程序运行的时间
    JS Promise 之 Hello World
  • 原文地址:https://blog.csdn.net/qq_64005599/article/details/133828460