63.【Java I/O 操作】(三)

简介: 63.【Java I/O 操作】

(七)、字符缓冲流

20.字符缓冲流(读取)

1.缓冲流:BufferedReader/BufferedWriter
2.高效读写  
3.支持输入换行符 
4.可以一次写一行、读一行。
基本思路:
1.创建一个字符读取流
2.创建一个字符读取缓存区,把文件放到缓存区
3.关闭
import java.io.BufferedReader;
import java.io.FileReader;
public class Demo11 {
    public static void main(String[] args) throws Exception {
        //1.创建一个字符读取流
        FileReader fileReader=new FileReader("e:\\123.txt");
        //2.创建一个字符读取缓冲流
        BufferedReader bufferedReader=new BufferedReader(fileReader);
        int count=0;
        while ((count=bufferedReader.read())!=-1){
            System.out.println((char)count);
        }
        bufferedReader.close();
    }
}
import java.io.BufferedReader;
import java.io.FileReader;
public class Demo11 {
    public static void main(String[] args) throws Exception {
        //1.创建一个字符读取流
        FileReader fileReader=new FileReader("e:\\123.txt");
        //2.创建一个字符读取缓冲流
        BufferedReader bufferedReader=new BufferedReader(fileReader);
        char []buf=new char[1024];
        int count=0;
        while ((count=bufferedReader.read(buf))!=-1){
            System.out.println(new String(buf,0,count));
        }
        bufferedReader.close();
    }
}

21.字符缓冲流(写入)

基本思路:
1.创建文件字符
2.创建文件字符缓冲区
3.写入数据
4. newLine() 写入一个换行符
import java.io.BufferedWriter;
import java.io.FileWriter;
public class Demo12 {
    public static void main(String[] args) throws Exception {
        //1.设置文件字符输出
        FileWriter fileWriter=new FileWriter("e:\\147.txt");
        //2.设置文件字符写的缓存区
        BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
        //3.开始写的操作
        for (int i = 0; i <10 ; i++) {
            bufferedWriter.write("你好,小明");
            bufferedWriter.newLine(); //写入一个换行
        }
        System.out.println("项目完成");
        //关闭文件
        bufferedWriter.close();
    }
}

(八).打印输出流(printWriter)

22.打印输出流

打印输出流 (原样输出)
1.PrintWriter()
import java.io.PrintWriter;
public class Demo13 {
    public static void main(String[] args) throws Exception {
        //1.创建打印流
        PrintWriter printWriter=new PrintWriter("e:\\001.txt");
        //2.打印
        printWriter.println(91);
        printWriter.println(true);
        printWriter.println('a');
        printWriter.println("123");
        printWriter.close();
        System.out.println("打印成功");
    }
}

(九)、转换流(编码格式)

1.也叫做桥转换流:InputStreamReader/OutputStreamWriter
 (1).可将字节流转换为字符流
 (2).可设置字符的编码方式
 切记 : 读的文件的编码格式需要和设置的编码格式要一致否则会乱码
   (eg:utf-8 可以打印汉字 ,gbk 则会出现乱码)

23.输入转换流

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Demo14 {
    public static void main(String[] args) throws Exception{
        //1.创建一个输入流
        FileInputStream fileInputStream=new FileInputStream("e:\\123.txt");
        //2.创建一个输入转换流,并且把输入流放进转换流
        InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream,"utf8");  //指定编码
        int date=0;
        while ((date=inputStreamReader.read())!=-1){
            System.out.println((char)date);
        }
        inputStreamReader.close();
    }
}

24.输出转换流

基本思路:
1.创建文件流
2.创建文件输出转换流
3.关闭
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class Demo15 {
    public static void main(String[] args) throws Exception{
        //1.创建文件输出流
        FileOutputStream fileOutputStream=new FileOutputStream("e:\\1217.txt");
        //2.文件输出转换流
        OutputStreamWriter outputStream=new OutputStreamWriter(fileOutputStream,"UTF-8");
        for (int i = 0; i <10; i++) {
            outputStream.write("你好,傻瓜");
            outputStream.flush();
        }
        outputStream.close();
        System.out.println("运行完毕!");
    }
}

(十)、File类

概念:代表物理盘符中的一个文件或则文件夹

25.文件操作

基本思路:
1.创建文件
2.分隔符
3.删除文件
4.获取文件
5.判断文件 
import java.io.File;
import java.util.Date;
public class Demo16 {
    public static void main(String[] args) throws Exception {
        separator();
        fileOpe();
    }
    //1.分隔符
    public static void separator(){
        System.out.println("路径分割符:"+ File.pathSeparator);
        System.out.println("名称分隔符:"+File.separator);
    }
    //2.文件操作
    public static void fileOpe() throws Exception{
        //1.创建文件
        File file=new File("e:\\file.txt");
        System.out.println(file.toString());
        if (!file.exists()) {
            boolean b = file.createNewFile();
            System.out.println("创建的结果是:" + b);
        }
        //2.删除文件
            //2.1直接删除
     /*   if (file.exists()){
            file.delete();
            System.out.println("删除成功");
        }
            //2.2使用jvm进行删除
        file.deleteOnExit();
        Thread.sleep(5000);
        */
        //3.获取文件信息
        System.out.println("获取文件的绝对路径: "+file.getAbsolutePath());
        System.out.println("获取文件的路径 "+file.getPath());
        System.out.println("获取文件的名称 "+file.getName());
        System.out.println("获取父目录"+file.getParent());
        System.out.println("就获取文件的长度:"+file.length());
        System.out.println("获取创建时间:"+ new Date(file.lastModified()));
        //4.判断
        System.out.println("判断是否可写:"+file.canWrite());
        System.out.println("是否是文件"+file.isFile());
        System.out.println("是否是隐藏的:"+file.isHidden());
    }
}

相关文章
|
1月前
|
存储 缓存 Oracle
Java I/O流面试之道
NIO的出现在于提高IO的速度,它相比传统的输入/输出流速度更快。NIO通过管道Channel和缓冲器Buffer来处理数据,可以把管道当成一个矿藏,缓冲器就是矿藏里的卡车。程序通过管道里的缓冲器进行数据交互,而不直接处理数据。程序要么从缓冲器获取数据,要么输入数据到缓冲器。
Java I/O流面试之道
|
5月前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作
|
6月前
|
存储 Java
java用modbus4j的RTU去操作那些寄存器(线圈,保持,输入,离散输入寄存器)
java用modbus4j的RTU去操作那些寄存器(线圈,保持,输入,离散输入寄存器)
246 0
|
5月前
|
存储 缓存 Oracle
可能是最漂亮的Java I/O流详解
大家有什么思路吗?评论区一起讨论讨论。我需要使用 Java 逐行读取大约 5-6 GB 的大型文本文件。我怎样才能快速完成此操作?最高赞的回答是叫Peter Lawrey的老哥回答的。大家好,我是南哥。一个Java学习与进阶的领路人,今天指南的是Java I/O流,跟着南哥我们一起在Java之路上成长。本文收录在我开源的《Java学习进阶指南》中,涵盖了想要学习Java、成为更好的Java选手都在偷偷看的核心知识、面试重点。
129 1
可能是最漂亮的Java I/O流详解
|
5月前
|
存储 Java 索引
Java ArrayList操作指南:如何移除并返回第一个元素
通过上述方法,你可以方便地从Java的 `ArrayList` 中移除并返回第一个元素。这种操作在日常编程中非常常见,是处理列表时的基本技能之一。希望这篇指南能帮助你更好地理解和运用Java的 `ArrayList`。
61 4
|
5月前
|
Java Linux
Java演进问题之1:1线程模型对于I/O密集型任务如何解决
Java演进问题之1:1线程模型对于I/O密集型任务如何解决
|
5月前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之使用ODPS Tunnel Upload功能时,遇到报错:Java 堆内存不足,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
|
5月前
|
Java API 开发者
Java中的文件I/O操作详解
Java中的文件I/O操作详解
|
5月前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作