【Java篇】Java语言的IO流(中)

简介: 【Java篇】Java语言的IO流(中)

1,使用FileReader类读取文件


流类InputStreamReader是Reader类的子类,而文件字符输入流FileReader继承自InputStreamReader。所以两者创建的对象都可供FileReader类的实例化对象使用。在实现字符文件的输入操作时,必须先创建FileReader类的实例化对象,然后在调用reade()方法。

构造方法public FileReader(String name),根据文件名创建一个可读取的输入流对象。例:

//利用FileReader类读取f:\java文件夹下的hello.txt文件
//filename:A_1.java
import java.io.*;
public class A_1{
    public static void main(String[] args)throws IOException{
        char[] ch=new char[20];
        //创建一个字符数组,Java中汉字和字母都是一个字符,转义字符占用两个字符
        FileReader fr=new FileReader("f:\\java\\hello.txt");
        int num=fr.read(ch);
        String str=new String(ch,0,num);
        System.out.print("读取的字符个数:"+num+",内容是:");
        System.out.println(str);
        fr.close();
    }
}
//读取的字符个数:11,内容是:Helloworld!

4.1.png

2,使用FileWriter类写入文件


流类OutputStreamWriter是Writer类的子类,而文件字符流输出对象FileWriter继承自OutputStreamWriter,所以两者创建的对象都可供FileWriter类的实例化对象使用。在实现字符文件的输出操作时,必须先创建FileWriter类的实例化对象,然后在调用write()方法。

构造方法:public FileWriter(String filename),根据所给的文件名创建一个文件输出流对象,原先的文件会被覆盖。public FileWriter(String filename,boolean a),如果a=true,则会将数据追加在源文件的后面。例:

//利用FielWriter类将字符数组追加到原文件末尾
import java.io.*;
public class A_1{
    public static void main(String[] args)throws IOException{
        FileWriter fw=new FileWriter("f:\\java\\hello.txt",true);
        char[] ch={'J','a','v','a','\n'};
        fw.write(ch);
        fw.close();
    }
}
//helloworld!Java

4.2.png

3,使用BufferedReader类读取文件


缓冲字符输入流BuffedReader是Reader类的子类,用来读取缓冲区的数据,使用前必须先创建文件字符输入流FileReader类对象,然后以该对象为参数创建BufferedReader类的对象,利用此对象来读取缓冲区数据。

构造方法:public BuffedReader(Reader in),创建缓冲区字符输入流。public BufferedReader(Reader in,int size),创建缓冲区字符输入流,并设置缓冲区大小。例:

//利用缓冲字符输入流类读取文本文件
import java.io.*;
public class A_1{
    public static void main(String[] args){
        int count=0;
        String thisLine;
        try{
            FileReader fr=new FileReader("F:\\java\\hello.txt");
            BufferedReader br=new BufferedReader(fr);
            while((thisLine=br.readLine())!=null){
                count++;
                System.out.println(thisLine);
            }
            System.out.println("一共"+count+"行");
            br.close();
        }
        catch(IOException e){}
    }
}
/**
helloworld!
helloworld!
一共2行
*/

4.3.png

4,使用BufferedWriter类写入文件


缓冲字符输出流BuffedWriter是Writer类的子类,用来将数据写入缓冲区,使用前必须先创建文件字符输出流FileWriter类对象,然后以该对象为参数创建BufferedWriter类的对象,利用此对象把数据写入缓冲区。与BufferedReader类不同的是缓冲区数据最后必须使用flush()方法将缓冲区数据全部写入文件内。

构造方法:public BufferedWriter(Writer out),创建缓冲区字符输出流。public BufferedWriter(Writer out,int size),创建缓冲区字符输出流,并设置缓冲区大小。例:

//利用缓冲区输入输出流进行文件赋值
import java.io.*;
public class A_1{
    public static void main(String[] args){
        String str=new String();
        try{
            BufferedReader in=new BufferedReader(new FileReader("F:\\java\\hello.txt"));
            BufferedWriter out=new BufferedWriter(new FileWriter("F:\\java\\hello.txt"));
            while((str=in.readLine())!=null){
                System.out.println(str);
                out.write(str);
                out.newLine();
            }
            out.flush();
            in.close();
            out.close();
        }
        catch(IOException ioe){}
    }
}

4.4.png

目录
相关文章
|
22天前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
58 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
24天前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
57 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
18天前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
38 3
|
21天前
|
移动开发 Java 大数据
深入探索Java语言的核心优势与现代应用实践
【10月更文挑战第10天】深入探索Java语言的核心优势与现代应用实践
34 4
|
1月前
|
存储 Java 数据安全/隐私保护
Java中的域,什么是域?计算机语言中的域是什么?(有代码实例)
文章解释了Java中域的概念,包括实例域、静态域、常量域和局部域,以及它们的特点和使用场景。
38 2
|
1月前
|
Java 数据处理 开发者
揭秘Java IO流:字节流与字符流的神秘面纱!
揭秘Java IO流:字节流与字符流的神秘面纱!
31 1
|
1月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
Java IO流全解析:字节流和字符流的区别与联系!
62 1
|
1月前
|
Java 数据安全/隐私保护 C++
Java语言关键字
Java语言关键字
18 2
|
2月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
17天前
|
Java
Java 中 IO 流的分类详解
【10月更文挑战第10天】不同类型的 IO 流具有不同的特点和适用场景,我们可以根据具体的需求选择合适的流来进行数据的输入和输出操作。在实际应用中,还可以通过组合使用多种流来实现更复杂的功能。
35 0

热门文章

最新文章