Java流:在读写文件的过程中,数据在文件和内存之间是通过流来实现的。
流的分类:
按流向区分:(1)输入流:数据流入内存
????????????????????????????????InputStream和Reader作为基类
? ? ? ? ? ? ? ? ? ? ? (2)输出流:内存流出
????????????????????????????????OutputStream和Writer作为基类
按数据类型区分:(1)字节流:8位通用字节流通
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 字节输入流 InputStream作为基类
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 字节输出流OutputStream作为基类
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)字符流:16位Unicode字符流
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 字符输入流 Reader作为基类
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 字符输出流 Writer作为基类
字节流类InputStream与OutputStream读写文本:?
import java.io.*;//导入相关类
public class Demo1 {
public static void writeFile(String path) throws IOException {
FileOutputStream os=new FileOutputStream(path);
String str="Hello Java!";//定义字符串
byte []b=str.getBytes();//将字符串放入byte数组
os.write(b);
os.close();
}
public static String readFile (String path ) throws IOException {
FileInputStream is=new FileInputStream(path);
byte[] b = new byte[is.available()];//创建byte数组
is.read(b);//将读取数据放入数组
is.close();
return new String(b);//返回字符串b
}
public static void main(String[] args) throws IOException {
writeFile("a.txt");
System.out.println(readFile("a.txt"));
}
}
字符流类Buffere的和Filewriter写文本文件:
import java.io.*;
/**
* @auther super
* @date &date& &time&
* themes:
**/
public class Demo2 {
//写入方法
public static void writerFile(String path ) throws IOException {
FileWriter fw=new FileWriter(path);//创建一个FileWriter对象
BufferedWriter bw=new BufferedWriter(fw);//利用BufferedWriter类写文件
bw.write("Hello wprld!!!");//将字符串写入文件
bw.close();//关闭流
fw.close();//关闭流
System.out.println("写入完成!");
//关闭流才能显示
}
//读取方法
public static String readFile(String path ) throws IOException {
FileReader fr=new FileReader(path);//创建流对象
BufferedReader br=new BufferedReader(fr);//构建BufferdReader对象
char[] c = new char[1024];//创建一个长度合适的char数组
br.read(c);//读入到char数组内
// String line;//定义单行字符串
// StringBuilder s = new StringBuilder();//整体字符串
// while((line = br.readLine())!=null){//当行不为空继续循环
// s.append(line);//逐行打印
// }
br.close();//关闭流
fr.close();//关闭流
return new String(c);
}
public static void main(String[] args) throws IOException {
writerFile("weiterFile.txt");//调用方法writerFile,并写入参数
String s = readFile("weiterFile.txt");//接受返回值
System.out.println(s);
}
}
|