IO流:
低效O:
FileWriter初始化操作
FileWriter(String Filename, boolean append) // 参数append 默认为false
FileWriter对文件的写入操作
void write(String str);
void write(String str, int index, int len);
void write(int ch); // 注意,这是写一个字符, 如:write(97),则写入的为'a',如果想写数字,推荐使用第一个,如write("97")
void write(char[] chs);
void write(char[] chs, int index, int len);
Demo:
FileWriter fw = new FileWriter("d:\\a.txt");
fw.write("IO流Demo");
fw.write("换\r\n行");
fw.flush();
fw.close();
低效I:
FileReader:
FileReader(String filename)
读取操作:
int read() // 一次读取一个字符 以ASCII存储 想要看到字符 做类型转换 (char)read()
// 当返回值为-1时,说明没有数据了
int read(char[] cbuf) // 一次读取一个字符数组,返回的是实际读取到的字符的个数
Demo1:
//一次读取一个字符
FileReader fr = new FileReader("d:\\a.txt");
int ch;
while((ch=fr.read())!=-1)
{
System.out.print((char)ch);
}
fr.close();
Demo2:
//一次读取一个1024个字符
FileReader fr - new FileReader("d:\\a.txt");
char[] chs = new char[1024];
int len;
while((len = read(chs))!= -1 )
{
System.out.print(new String(chs, 0, len));
}
fr.close();
高效O:
Demo:
BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\bw.txt"));
bw.write("高效O Demo");
bw.write("换\r\n行");
bw.flush();
bw.close();
特殊功能:
void newLine() // 写一个换行符,具体是什么由系统决定, win(\r\n) linux(\n) mac(\r)
高效I:
Demo:
BufferedReader br = new BufferedReader(new FileReader("d:\\bw.txt"));
char[] chs = new char[1024];
int len;
while((len=bw.read(chs))!=-1)
{
System.out..print(new String(chs,0,len));
}
bw.close();
特殊功能:
String readLine() // 一次读取一行数据,但是不读取换行符。
☆Demo:
BufferedReader br = new BufferedReader(new FileReader("d:\\bw.txt"));
String line;
while((line = br.readLine()) != null)
{
System.out.println(line);
}
br.close;
//具有鲁棒性的文件写入
public static void main(String[] args) {
function("a.txt");
}
public static void function(String filename){
FileWriter fw = null;
try {
//System.out.println(1/0);;
fw = new FileWriter(filename);
fw.write("hello world");
fw.write("hello world");
//fw.write(2/0);
fw.write("hello world");
fw.write("hello world");
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fw!=null)
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用字节流进行文件的复制(二进制文件的复制)
private static void method() throws FileNotFoundException, IOException {
FileInputStream fis = new FileInputStream("这里是一个文件名");
FileOutputStream fos = new FileOutputStream("另一个问件名");
// 一次读一个字节
// int by;
// while((by = fis.read() ) !=-1){
// fos.write(by);
// }
// 一次读取一个字符数组
int len;
byte[] bys = new byte[1024];
while((len = fis.read(bys))!=1){
fos.write(len);
}
fis.close();
fos.close();
}