2:需求:请大家把E:\JavaSE目录下所有的java结尾的文件的绝对路径给输出在控制台。
package FileText;
import java.io.File;
/**
* 需求:请大家把E:\code目录下所有的html结尾的文件的绝对路径给输出在控制台。
* 1.用File对象封装E:\code
* 2.调用FIle类的listFiles()方法,返回File类型的数组
* 3.对该数组进行非空判断
* 4.用增强for()循环获取该数组中的每一个文件
* 5.对每一个文件进行判断,是否同时为是绝对路径和满足以"html"结尾
* 6.如果是,就调用getAbsolutePath()方法,将文件的绝对路径输出在控制台
* */
public class FileText_08 {
public static void main(String[] args) {
File file=new File("e:\\code");
File[] listFiles =file.listFiles();//将该文件夹下的文件封装在File类型的数组中
System.out.println("该文件夹下以html结尾的文件绝对路径有:");
if(listFiles!=null){
for(File f:listFiles){
if(f.getName().endsWith("html") &&f.isAbsolute()){
System.out.println(f.getAbsolutePath());
}
}
}
}
}
3:复制文本文件:有5种方式
五种方式有:BufferedInputStream的一次获取一个字节和一次获取一个字节数组,以及字符转换输入流(InputStreamReader)的一次获取一个字符数组,还有高效字符流的一次获取一个字符和一次获取一个字符数组
package InputDemo;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/**
* 需求:使用5种方法将当前项目下的a.txt内容复制到当前项目下的b.txt下
* 1.定义5个方法,分别是FileInputStream的一次获取一个字节和一次获取一个字节数组的复制方法,
* 和BufferedInputStream的一次获取一个字符个一次获取一个字符数组
* 以及字符转换流(InputStreamReader)的一次获取一个字符数组
* 2.在这5个方法中,分别创建各自的输入流对象来封装a.txt文件,创建输出流对象来封装目的地
* 3.最后分别关闭流资源,字符流每写完数据需要刷新数据
* 4.输出控制台
* */
public class CopyText_01 {
public static void main(String[] args) throws IOException {
method1();//该方法是字节缓冲输入流的一次获取一个字节来复制文件
method2();//该方法是字节缓冲输入流的一次获取一个字节数组来复制文件
method3();//该方法是高效字符流的一次获取一个字符来复制文件
method4();//该方法是高效字符流的一次获取一个字符数组来复制文件
method5();//giant方法是使用字符转换流来复制文件
}
private static void method5() throws IOException {
// 创建字符转化输入流的对象
InputStreamReader isr=new InputStreamReader(new FileInputStream("a.txt"));
//创建字符输出流对象
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("b.txt"));
//一次获取一个字符数组
char []ch=new char[1024];
int len=0;
while((len=isr.read(ch))!=-1){
osw.write(ch, 0, len);
osw.flush();
}
isr.close();
osw.close();
}
private static void method4() throws IOException {
// 创建高效字符输入流对象
BufferedReader br=new BufferedReader(new FileReader("a.txt"));
//创建高效字符输出流对象
BufferedWriter bw=new BufferedWriter(new FileWriter("b.txt"));
//一次获取一个字符数组
char []ch=new char[1024];
int len=0;;
while((len=br.read(ch))!=-1){
bw.write(ch, 0, len);
bw.flush();//刷新该流
}
br.close();
bw.close();
}
private static void method3() throws IOException {
// 创建高效字符输入流对象
BufferedReader br=new BufferedReader(new FileReader("a.txt"));
//创建高效字符输出流对象
BufferedWriter bw=new BufferedWriter(new FileWriter("b.txt"));
//一次获取一个字符
String len=null;
while((len=br.readLine())!=null){
bw.write(len);
bw.newLine();//插入分隔符
bw.flush();
}
br.close();
bw.close();
}
private static void method2() throws IOException {
// 创建字节缓冲输入流对象
BufferedInputStream bis=new BufferedInputStream(new FileInputStream("a.txt"));
//创建字节缓冲输出流对象
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("b.txt"));
//一次获取一个字节数组
byte[] bys=new byte[1024];
int len=0;
while((len=bis.read(bys))!=-1){
bos.write(bys, 0, len);
bos.flush();
}
bis.close();
bos.close();
}
private static void method1() throws IOException {
// 创建字节缓冲输入流对象
BufferedInputStream bis=new BufferedInputStream(new FileInputStream("a.txt"));
//创建字节缓冲输出流对象
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("b.txt"));
//一次获取一个字节来复制文件
int bys=0;
while((bys=bis.read())!=-1){
bos.write(bys);
bos.flush();//刷新该流
}
bis.close();
bos.close();
}
}
4:复制图片:4种方式
package InputDemo;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* 需求:复制图片:4种方式:对于图片这类比较大的文件,可以选择高效字节流的两种方法以及高效字符流的两种方法
* 1.定义四个方法,分别将图片e:JAVA\\1.jpg和copy.jpg这两个参数传入
* 2.分别定义输入流对象,用来封装数据源
* 3.再定义输出流对象,来封装目的地
* 4.一次获取文件,然后写文件,进行复制
* 5.关闭流资源,对于字符类型每写完数据之后需要刷新该流
* */
public class CopytText_02 {
public static void main(String[] args) throws IOException {
// method1("e:\\JAVA\\1.jpg","copy.jpg");//该方法是用高效字节流的一次获取一个字节来复制文件
// method2("e:\\JAVA\\1.jpg","copy.jpg");//该方法是高效字节流的一次获取一个字节数组来复制文件
// method3("e:\\JAVA\\1.jpg","copy.jpg");//该方法是高效字符流的一次获取一个字符来复制文件
method4("e:\\JAVA\\1.jpg","copy.jpg");//该方法是高效字符流的一次获取一个字符数组来复制文件
}
private static void method4(String s1, String s2) throws IOException {
// 创建高效字符输入流对象
BufferedReader br=new BufferedReader(new FileReader(s1));
//创建高效字符输出流对象
BufferedWriter bw=new BufferedWriter(new FileWriter(s2));
//一次获取一个字符数组
char[] ch=new char[1024];
int len=0;
while((len=br.read(ch))!=-1){
bw.write(ch, 0, len);
bw.flush();//刷新该流
}
br.close();
bw.close();
}
// private static void method3(String s1, String s2) throwsIOException {
// // 创建高效字符输入流对象
// BufferedReader br=new BufferedReader(new FileReader(s1));
// //创建高效字符输出流对象
// BufferedWriter bw=new BufferedWriter(new FileWriter(s2));
// //一次获取一个字符
// int ch=0;
// while((ch=br.read())!=-1){
// bw.write(ch);
// bw.flush();//刷新该流
// }
// br.close();
// bw.close();
// }
//
// private static void method2(String s1, String s2) throwsIOException {
// //创建高效字节输入流对象
// BufferedInputStream bis=new BufferedInputStream(newFileInputStream(s1));
// //创建高效字节输出流对象
// BufferedOutputStream bos=new BufferedOutputStream(newFileOutputStream(s2));
// //一次获取一个字节数组来复制文件
// byte[] bys=new byte[1024];
// int len=0;
// while((len=bis.read(bys))!=-1){
// bos.write(bys, 0, len);
// }
// bis.close();
// bos.close();
//
// }
//
// private static void method1(String s1, String s2) throwsIOException {
// // 创建高效字节输入流对象
// BufferedInputStream bis=new BufferedInputStream(newFileInputStream(s1));
// //创建高效字节输出流对象
// BufferedOutputStream bos=new BufferedOutputStream(newFileOutputStream(s2));
// //一次获取一个字节
// int bys=0;
// while((bys=bis.read())!=-1){
// bos.write(bys);
// }
// bis.close();
// bos.close();
// }
}
5:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl”
请编写程序读取数据内容,把数据排序后写入ss.txt中。
package PropertiesText;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
/**
* 需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl”请编写程序读取数据内容,
* 把数据排序后写入ss.txt中。
* 1.在当前项目下创建s.txt并在文件中输入hcexfgijkamdnoqrzstuvwybpl一行字符串
* 2.创建字符缓冲输入流对象,用来封装数据源
* 3.获取该文件,使用输入流的特有方法,一次获取一行
* 4.将获取到的字符串转换为字符数组,然后用Arrays类的Sort()方法对其进行排序,最后在转换为字符串
* 5.创建字符缓冲输出流的对象,封装SS.txt将排好序的字符串写入该文件中
* */
public class PropertiesText_04 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("s.txt"));//创建字符缓冲输入流对象
//获取该文件中的字符串
String str = br.readLine();
//关闭流资源
br.close();
//将该字符串转换为字符数组
char[] array = str.toCharArray();
Arrays.sort(array);//对该字符数组进行排序
//将排好序的字符数组转换为字符串
String str2=new String(array);
//创建字符缓冲输出流对象,将排好序的字符串写入ss.txt文件中
BufferedWriter bw=new BufferedWriter(new FileWriter("ss.txt"));
bw.write(str2);
bw.newLine();//插入换行符
bw.flush();
bw.close();
}
}
6:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件