文件2
程序员文章站
2022-04-09 08:04:30
...
1、字符流
Winter:字符输出流父类
write(int c);写入的是c的低16位
write(char[] c);将char数组中的字符写入到文件
write(String str);将字符串直接写入到文件中
write(cahr[] c,int off,int length);写入,写多少个
Reader: 字符输入流父类
int read();读取一个字符,将读取的内容保存在int型值低16位
int read(char[] c);从文件中读取一个字符数组长度的字符,返回读取
的字符数java默认使用unicode编码
字符流底层依然是字节流
FileWriter:文件字符输出流
覆盖写
@Test
public void test01() throws IOException{
FileWriter file=new FileWriter("a.txt");
file.write("香港是中国的");
file.close();
System.out.println("写出成功");
}
追加写
@Test
public void test02() throws IOException{
FileWriter file=new FileWriter("a.txt",true);
file.write(",hahaha");
file.close();
System.out.println("写出成功");
}
FileReader:文件字符输入流
FileReader
@Test
public void test03() throws IOException{
FileReader file=new FileReader("a.txt");
char[]c=new char[100];
int length=file.read(c);
file.close();
System.out.println(new String(c));
System.out.println(length);//读取字符数
System.out.println("读入成功");
转换流,可指定字符集,非节点流(能不能直接操作文件),实例化转换流,必须实例化一个字节流
OutputStreamWriter
@Test
//测试写字符,指定字符集为utf-8
public void test01() throws IOException{
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("b.txt"),"utf-8");
osw.write("我爱中国");
osw.close();
System.out.println("写出成功");
}
InputStreamReader
@Test
//测试写字符,指定字符集为utf-8
public void test02() throws IOException{
InputStreamReader osw=new InputStreamReader(new FileInputStream("b.txt"),"utf-8");
char[]c=new char[10];
osw.read(c);
System.out.println(new String(c));
osw.close();
System.out.println("写出成功");
}
缓冲字符流
BufferedWriter
@Test
public void test01() throws IOException {
BufferedWriter bw=new BufferedWriter(new FileWriter("c.txt"));
bw.write("Hello 你好");
bw.flush();
bw.close();
}
BufferedReader
@Test
public void test02() throws IOException {
BufferedReader br=new BufferedReader(new FileReader("./src/com/Demo03.java"));
String str="";
//String str =br.readLine();//读一行
while((str=br.readLine())!=null){
System.out.println(str);
}
br.close();
打印流(字节打印流,字符打印流)
字符打印流
@Test
public void test01() throws FileNotFoundException {
PrintWriter pw1=new PrintWriter("pw.txt");
pw1.println("中国人");
pw1.close();
}
字节打印流
@Test
public void test02() throws FileNotFoundException {
PrintStream pw1=new PrintStream("ps.txt");
pw1.println("京东");
pw1.close();
}
测试系统输出和输入
@Test
public void test03() throws FileNotFoundException {
//System.setOut(new PrintStream("sys.txt"));//控制打印位置
System.out.println("Hello world");//打印流 打印到控制台 PrintStream
Scanner scan=new Scanner(System.in);//InputStream 输入流
}
读取控制台内容
@Test
public void test04() throws IOException {
BufferedInputStream bis=new BufferedInputStream(System.in);
int i=-1;
System.out.println("请输入");
while((i=bis.read())!=-1){
System.out.println((char)i);
}
}
输出到控制台
@Test
public void test05() throws IOException {
PrintWriter pw1=new PrintWriter(System.out);
pw1.println("中国人");
pw1.close();
}
复制
@Test
public void test06() throws IOException {
copy(new File("b.txt"),new File("a.txt"));
}
public void copy(File a,File b) throws IOException{
BufferedReader br=new BufferedReader(new FileReader(a));
BufferedWriter bw=new BufferedWriter(new FileWriter(b));
String str="";
while((str=br.readLine())!=null){
bw.write(str);
}
br.close();
bw.close();
}
随堂练习:
1、模拟保存系统日志,将日志信息分行输出到日志文件
提示:使用PrintWriter
2、使用字符缓冲流实现文本文件的复制
3、读取控制台数据,将数据使用utf-8编码写到指定的文件中
上一篇: photoclip进行图片裁剪上传
下一篇: Vue图片裁剪上传组件
推荐阅读
-
Cocos2d-x文件操作
-
2.wp-blog-header.php文件分析(一)
-
CentOS5 + rsync 同步2台服务器的文件
-
PHP APC配置文件2套和参数详解_PHP
-
Yii2使用自带的UploadedFile实现的文件上传_php实例
-
魔兽世界客户端数据研究(四):M2文件头分析
-
不用数据库的多用户文件*上传投票系统(2)
-
安装php5.3之后发现php文件夹下没有php5apache2.dll,于是安装php5.2,发现也没有,该如何解决
-
Yii2使用自带的UploadedFile实现的文件上传,yii2uploadedfile
-
Windows 下编译PHP生成的文件里没有php5apache2_2.dll