<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在java中,File类可以对于文件进行创建、删除等操作,而对于文件本身进行操作的话,则要使用IO字节流或字符流。</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">一、File类</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在File类中,对于文件,可以进行访问文件名、检测文件、获取文件信息,对文件和目录进行操作等基本操作。在FIle类中,有绝对路径和相对路径,一般使用后者。</span>
二、IO流
File类可以对于文件进行复制、创建、删除等操作,但是对于文件内容的操作则需要IO流(输入输出流)。IO流里面有字符流和字节流两种,字符流是对于文件内容一个字符进行操作,字节流则是对文件内容的一个字节进行操作。
作业一:
//这里需要使用static,因为主函数是static
public static void writePoem(String[] poem,String path){
try {
File file=new File(path);
//检验文件是否存在
if(!file.exists()){
//如果文件不存在,则创建一个新文件
file.createNewFile();
}
//定义一个字符流,对应中文
FileWriter fw=new FileWriter(file);
//使用增强for循环,输出字符
for(String p:poem){
//如果不加“\r\n”,則無法識別換行符
fw.write(p+"\r\n");
}
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
本方法放在主类里面可以使用主方法直接调用。
作业二:
public static void readAndWrite(String fileName){
File file=new File(fileName);
if(file.exists()){
try {
//定義輸入流和輸出流
FileReader fr=new FileReader(file);
FileWriter fw=new FileWriter(file);
char[] buf=new char[200];
int hashRead=0;
//取流
while((hashRead=fr.read(buf))>0){
String str=new String(buf);
//輸出流
fw.write(str+"\r\n");
}
fr.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
System.out.println("文件不合法");
}
}
该方法可以把从主程序中输入的文件输出一遍,但是不知道怎么把当前的java文件输入。