import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
// 流 以 内存 为参照
// 字节流 : FileOuputStream FileInputStream
// 字符流 : FileWriter FileReader
// 缓冲流: BufferedWriter BufferedReader
public class IO {
public static void main(String[] args){
fileReader();
}
//字节流 输出流
public static void fileOutputStream(){
File f = new File("e:\\text.txt"); //指定到支持的文件
try{
//文件不存在时创建
if(f.exists()==false){
f.createNewFile();
}
FileOutputStream fos = new FileOutputStream(f);
String str = "今天的天气很闷沉";
byte[] b = str.getBytes();
fos.write(b);
fos.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
//字符流 输出流
public static void fileWriter(){
File f = new File("e:\\text.txt");
try{
if(f.exists()==false){
f.createNewFile();
}
FileWriter fw = new FileWriter(f,true); //true 表示不覆盖文件里面的内容
String str = "今天的天气很闷沉";
char[] ch = str.toCharArray();
fw.write("\r\n"); //写入换行
fw.write(ch);
fw.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
// 缓冲流 输出流
public static void bufferedWriter(){
File f = new File("e:\\text.txt");
try{
if(f.exists()==false){
f.createNewFile();
}
BufferedWriter bw = new BufferedWriter(new FileWriter(f,true)); // 以字符流的对象为参数
//缓冲流可以直接操作字符
bw.write("\r\n");
bw.write("天气不是很好!");
bw.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
//字节流 输入流
public static void fileInputStream(){
File f = new File("e:\\text.txt");
try{
if(f.exists()==false){
f.createNewFile();
}
FileInputStream fis = new FileInputStream(f);
// 字节数组的长度 ,由文件的字节大小
byte[] b = new byte[(int)f.length()];
fis.read(b); //读入数据
String str = new String(b); //以字节数组构建字符串
fis.close();
System.out.println(str);
}catch(Exception ex){
ex.printStackTrace();
}
}
//字符流 输入流
public static void fileReader(){
File f = new File("e:\\text.txt");
try{
if(!f.exists()){
f.createNewFile();
}
FileReader fr = new FileReader(f);
StringBuffer sb = new StringBuffer();
char[] ch = new char[1000]; // 字符的长度未知
int hasRead = 0;
while((hasRead=fr.read(ch))>0){
sb.append(new String(ch,0,hasRead));
}
fr.close();
System.out.println(sb);
}catch(Exception ex){
ex.printStackTrace();
}
}
//缓冲刘 输入流
public static void bufferedReader(){
File f = new File("e:\\text.txt");
try{
if(!f.exists()){
f.createNewFile();
}
BufferedReader br = new BufferedReader(new FileReader(f)); //字符流的对象构造
//每次读取文件的一行
StringBuffer sb = new StringBuffer();
while(br.ready()){ //是否有读取内容
sb.append(br.readLine()); //读取一行
sb.append("\r\n"); //换行
}
br.close();
System.out.println(sb);
}catch(Exception ex){
ex.printStackTrace();
}
}
}
java IO 流-字节流-字符流-缓冲流 详细案例
最新推荐文章于 2024-09-15 19:46:31 发布