IO_文件流
字节流是一个个字节输入输出,传中文字符会乱码。字符流是一个个字符,可以传英文,也可以传中文。和文件字节流格式一样,直接套就可以了。
读出代码如下
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
/*
* 四个步骤:分段读取
* 1.创建源 选择房子
* 2.选择流 选择搬家公司
* 3.操作 选择用什么搬
* 4.释放资源 打发搬家公司
*/
public class IOtest02 {
public static void main(String[] args) {
//1.创建源
File src = new File("D:/WorkSpace/IO/src/io.txt");
Reader reader = null;
//2.选择流
try {
reader = new FileReader(src);
//3.操作(分段读取)
char[] flush = new char[1024];//缓冲容器
int len = -1; //接收长度
try {
while ((len=reader.read(flush))!=-1) {//结尾的结果等于-1
//字节数组-->字符串
String temp = new String(flush, 0, len);
System.out.print(temp);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//4.释放资源
try {
if (null!=reader) { //如果 reader没有就不存在释放
reader.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
写入的操作有三种
第一种用的write方法,把字符串转成字符数组,然后放进去
String msg = "IO is so easy!纯洁小美男 ";
char[] datas = msg.toCharArray();//字符串-->字符数组
writer.write(datas,0,datas.length);
第二种方法也是用的write,直接把字符串放进去
String msg = "IO is so easy!纯洁小美男 ";
writer.write(msg);
第三种方法用的是append,它可以放多次,直接在后面点是完事了,而write要放多次必须再写一个
writer.append(" IO is so easy").append("纯洁小美男");
写入代码如下
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Writer;
/*
* 四个步骤:分段读取
* 1.创建源 选择房子
* 2.选择流 选择搬家公司
* 3.操作 选择用什么搬
* 4.释放资源 打发搬家公司
*/
public class IOtest04 {
public static void main(String[] args) throws IOException {
//1.创建源
File src = new File("src/test.txt");
//2.选择流
Writer writer = null;
try {
writer = new FileWriter(src); //如果是true在原有的后面加,如果是flass测是替换原有的
//3.操作(写入)
//方法一
/*String msg = "IO is so easy!纯洁小美男 ";
char[] datas = msg.toCharArray();//字符串-->字符数组
writer.write(datas,0,datas.length);*/
//方法二
/*String msg = "IO is so easy!纯洁小美男 ";
writer.write(msg);*/
//方法三
writer.append(" IO is so easy").append("纯洁小美男");
try {
writer.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}