1.程序调整为可以对文本文件按行进行读取,每读取一行后显示此行,并统计此行有多少字节,有多少字符并显示统计结果。最后显示总的行数。
先创建一个eeeee.txt,内容如下:
代码如下所示:
import java.io.*;
/*
把程序调整为可以对文本文件按行进行读取,每读取一行后显示此行,
并统计此行有多少字节,有多少字符并显示统计结果。最后显示总的行数。
*/
public class file04 {
public static void main(String[] args) throws IOException {
//创建字符缓冲输入流对象
BufferedReader br = new BufferedReader(new FileReader("src\\Train\\File\\eeeee.txt"));
//读取数据
String line;//定义line用来接收每一行读取的数据
int i=0;//定义i用来累计读取的行数
int s1=0;//定义s1用来存放每一行字符的个数
int s2=0;//定义s2用来存放每一行字节的个数
while((line = br.readLine())!=null)//判断没有读取完
{
i++;
//把读取到的字符串数据存储到集合中
System.out.println("第"+i+"行的内容是"+line); //输出每一行的内容
s1=line.length();//得到每一行字符的个数
System.out.println("第"+i+"行有"+s1+"个字符"); //输出每一行有多少字符
s2=line.getBytes().length;//得到每一行字节的个数
System.out.println("第"+i+"行有"+s2+"个字节"); //输出每一行有多少字节
}
System.out.println("一共有"+i+"行"); //输出总共有多少行
//释放资源
br.close();
}
}
结果如下:
2.通过二进制流的操作方式把程序调整为可以实现对任何类型文件进行文件复制
先创建一个new01.txt文件,内容如下图:
代码如下:
import java.io.*;
public class file05 {
public static void main(String[] args) throws IOException {
//读取字符缓冲,缓冲输入流
BufferedReader br = new BufferedReader(new FileReader("src\\Train\\File\\news01.txt"));
//写入字符缓冲,缓冲输出流
BufferedWriter bw = new BufferedWriter(new FileWriter("src\\Train\\File\\news02.txt"));
//读取数据:复制文件
//使用字符输入流特有功能实现
//一次读取一行
String line;
while((line = br.readLine())!=null)
{
bw.write(line);//将读取的一行写入另一个文件中
bw.newLine();//使用newline()来进行换行
bw.flush();//刷新
}
//释放资源
bw.close();
br.close();
}
}
结果就会将new01.txt复制到new02.txt,如下所示
3.通过二进制流的操作方式把程序调整为可以实现对任何类型文件进行文件移动
首先在File目录下创建一个move01.txt文件,然后编写代码将其移动到File01目录下,代码如下所示:
import java.io.File;
public class File06 //类名
{
public static void main(String[] args) {
File f = new File("src\\Train\\File\\move01.txt");//源文件路径
boolean f1=f.renameTo(new File("src\\Train\\File01\\move01.txt"));//移动到的文件路径
if(f1=true)//判断文件是否成功
{
System.out.println("文件移动成功");//如果文件移动成功输出
}else{
System.out.println("文件移动失败");//如果文件移动失败输出
}
}
}
结果如下:
成功的移动到了File01目录下