java ------ I/O (四) 读写文件
2021-01-28 04:16
标签:-- mes 信息 stat col 相关 stream 参数 读取文本 InputStream 抽象类的常用子类 FileInputStream ,称为文件输入流 ,将文件中的数据输入到内存中,用于读取文本文件中的数据。 常用方法 主要步骤: 1、导入相关类,并抛出异常 2、构造一个文件输入流对象,将文件输入流对象 (fileInputStream )与源数据源(E:\\obge\\obgeTest.txt)关联起来 注意:要在路径 E:\\obge\\obgeTest.txt 下弄点数据,如帅气的obge 3、利用文件输入流类的方法读取文本中的文件内容 4、关闭流 实际运行结果 代码: OutStream 抽象类的常用子类 FileOutStream ,称为文件输出流,用于把文件中的数据输出到文件中,就是把内存中的数据写到指定的文本文件中。 常用方法: 主要步骤: 1、导入相关类,并抛出异常 2、构造一个文件输出流对象,将文件输出流对象 (fileOutPutStream)与源数据源(E:\\obge\\obgeTest.txt)关联起来 注意:当obge 文件下没有 obgeTest.txt 这个文件时,会先创建此文件然后在写数据,有 obgeTest.txt 这个文件的话,默认情况下会覆盖原有文件中的内容,第二个参数 true 的作用就是像文件末尾中添加数据, 3、利用文件输出流类的方法将数据写入到文本文件中 4、关闭流 运行结果 代码: 当然你要想看看报错 BufferedReader 和 FileReader 时抽象类 Reader 的子类,通过字符流的方式读取文件,并使用了缓冲区,提高了读取文本文件的效率。 常用方法: 主要步骤: 1、导入相关类,并抛出异常 2、将对象 (fileReader)与源数据源(E:\\obge\\charstu.txt)关联起来 注意:要在路径 E:\\obge\\obgeTest.txt 下弄点数据,如帅气的obge 3、创建 BufferedReader 对象,将fileReader放入其中 4、利用BufferedReader类的方法读取文本中的文件内容 5、关闭流 运行结果
代码: BufferWriter 和 FileWriter 是抽象类 Writer的子类,通过字符流的方式把数据写到文本文件中,并使用了缓冲区,提高了写文本文件的效率。 常用方法: 主要步骤: 1、导入相关类,并抛出异常 2、将对象 (fileReader)与源数据源(E:\\obge\\charstu.txt)关联起来 注意:如果没有使用第二的参数为true,会覆盖原有数据 3、创建 BufferedReader 对象,将fileReader放入其中 4、利用BufferedReader类的方法读取文本中的文件内容 5、关闭流 运行结果 使用BufferedWriter 类如何追加内容? 发现原来的数据没有了,怎么办,就是在没有使用FileWriter 中的,允许追加字符串的多参构造方法 当然也有别的方法: 利用 BufferedWriter 中自带的构造方法 代码: java ------ I/O (四) 读写文件 标签:-- mes 信息 stat col 相关 stream 参数 读取文本 原文地址:https://www.cnblogs.com/obge/p/12840016.html一、使用字节流读写文本文件
1、使用字节流类FileInputStream 读文本文件
package com.obge.test2;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamStu {
public static void main(String[] args) throws IOException {
//BufferedReader bufferedReader = new BufferedReader("E:\\obge\\obgeTest.txt");
//创建流对象
FileInputStream fileInputStream = new FileInputStream("E:\\obge\\obgeTest.txt");
int data;
//available() 可读取的字节数
System.out.println("可读取的字节数:"+fileInputStream.available());
System.out.println("文件内容为:");
//循环读取内容
while((data = fileInputStream.read())!= -1){
System.out.println(data +"");
}
//关闭流对象
fileInputStream.close();
}
}
2、使用字节流类FileOutStream 写文本文件
package com.obge.test2;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutPutStreamstu {
public static void main(String[] args) {
try {
String str = "obge帅";
//放到字节数组里
byte[] words = str.getBytes();
//创建流对象,当obge 文件下没有 obgeTest.txt 这个文件时,会先创建此文件然后在写数据。
//如果obge 文件下有 obgeTest.txt 这个文件,默认情况下会覆盖原有文件中的内容,第二个参数 true 的作用就是像文件末尾中添加数据
FileOutputStream fileOutPutStream = new FileOutputStream("E:\\obge\\obgeTest.txt",true);
//写入文件
fileOutPutStream.write(words,0,words.length);
System.out.println("文件已更新");
//关闭流
fileOutPutStream.close();
}catch (IOException e){
System.out.println("文件创建出错"+e.getMessage());
}
}
}
二、使用字符流读写数据
1、使用字符流类BufferedReader 和 FileReader 读取文本文件
package com.obge.test2;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReaderStu {
public static void main(String[] args) {
try {
//获取需要读取的文本文件的位置
FileReader fileReader = new FileReader("E:\\obge\\charstu.txt");
//创建 BufferedReader 对象
BufferedReader bufferedReader = new BufferedReader(fileReader);
//读取一行数据
String strLine = bufferedReader.readLine();
//不为空就打印出charstu.txt 里面的东东
while (strLine != null){
System.out.println(strLine);
strLine = bufferedReader.readLine();
}
//关闭流 从里到外关闭
bufferedReader.close();
fileReader.close();
}catch (IOException e){
System.out.println("文件不存在");
}
}
}
2、使用字符流类BufferedWriter 和 FileWriter 写文本文件
package com.obge.test2;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterStu {
public static void main(String[] args) {
try {
//创建FileWriter 对象 和 数据源 E:\obge\charstu.txt 关联气力啊
FileWriter fileWriter = new FileWriter("E:\\obge\\charstu.txt",true);
//创建bufferedWriter 对象
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
//如果 E:\obge\charstu.txt 中有两行,就加一个newLine();
bufferedWriter.newLine();
//写入信息
bufferedWriter.write("新增第一行!");
bufferedWriter.write("不我也是新增的第一行");
//写入新一行数据 俗称换一行写
bufferedWriter.newLine();
bufferedWriter.write("The second line");
//刷新缓冲区
bufferedWriter.flush();
//关闭流 从里到外关闭
fileWriter.close();
bufferedWriter.close();
System.out.println("文件写入成功");
}catch (IOException e){
System.out.println("文件不存在!");
}
}
}
文章标题:java ------ I/O (四) 读写文件
文章链接:http://soscw.com/index.php/essay/48065.html