文件名的书写:
文件名为a那么写文件时是a.txt。
FileReader fr = new FileReader(“C:\eclipse-jee-neon-3-RC3-win32-x86_64\a.txt”); 有两斜杠
点击txt文件属性得到:
C:\eclipse-jee-neon-3-RC3-win32-x86_64
此时要修改为
C:\ \eclipse-jee-neon-3-RC3-win32-x86_64 \ \a.txt
c:\后面要加 \ ,64后要加 \ \a.txt
FileWriter构造方法有五种:
①:FileWriter(File file) :传入文件位置
例如:
FileWriter writer = new FileWriter("C:\\eclipse-jee-neon-3-RC3-win32-x86_64\\a.txt");
②:FileWriter(File file, boolean append) :
传入文件位置以及true\false
例如:
FileWriter writer = new FileWriter("C:\\eclipse-jee-neon-3-RC3-win32-x86_64\\a.txt",true);
③:FileWriter(String fileName) :
传入文件名,在此之前要声明一个文件。
如:
File f = new File("C:\\eclipse-jee-neon-3-RC3-win32-x86_64\\a.txt");
FileWriter writer = new FileWriter(f);
④:FileWriter(String fileName, boolean append) :
传入文件名,在此之前要声明一个文件。
例如:
File f = new File("C:\\eclipse-jee-neon-3-RC3-win32-x86_64\\a.txt");
FileWriter writer = new FileWriter(f,true);
⑤:FileWriter(FileDescriptor fd) :
构造与某个文件描述符相关联的 FileWriter 对象。
传参为FileWriter 对象。
1:首先分为直接传入文件位置(C:\eclipse-jee)或文件名(f1)
再分为是追加写还是覆盖写通过boolean append实现。true为追加写,false为覆盖写。
2:append 如果为 true则是追加写,则将字节写入文件末尾处,而不是写入文件开始处。
3:append 相当于指定了写入的方式,是覆盖写还是追加写。
三种方法:
①:Write():将字符或字符串写入文件中
②:Write(char b[]):将字符数组中内容全部写入文件中
③:Write(char b[],int off,int len):从数组下标为off处开始,将字符数组中内容写入len个字符到文件中。
构造方法与方法含义不同
一行行读取数据:
1:Scanner类:因为FileWriter类只能一个个读入,太慢,而scnner的nextline方法可以一行行处理数据。
2:Scanner有nextline方法 next方法是读取一个值并非一行
3:用scanner读取文件,参数为FileWriter或者File类型都可以。
代码:
File q = new File(“c:\\a.txt”); 或者
FileWriter q = new FileWriter(“c:\\a.txt”);
Scanner sc = new Scanner(q);
while(sc.hasNext()){
String line = sc.nextline();
System.out.println(line);
}
题1:
package zuoye3;
import java.io.FileWriter;
import java.io.IOException;
public class zuoye31 {
public static void main(String [] args) throws IOException{
FileWriter writer = new FileWriter("writer.txt");
String str = "你好,传播美克";
writer.write(str);
writer.write("\r\n");
writer.close();
}
}
FileReader三种方法:
①:read():读入一个字符返回unicode编码,未读入字符返回-。1
②:read(char b[ ]):读入b.length个字符到数组b中,到达文件末尾返回-1,否则返回读取的字符数目。
③:read(char c[ ],int off,int len) : 读取len个字符到数组c中,从off处开始存储。到达文件末尾返回-1,否则返回读取的字符数目。
异常情况的书写
try {
//逻辑代码
}catch(exception e){
//try中逻辑代码有异常则执行此处代码
} finally{
//一定要执行的代码,不管什么情况都会执行,包括try catch 里面用了return
}
正常情况下,先执行try里面的代码,捕获到异常后执行catch中的代码,最后执行finally中代码,但当在try catch中执行到return时,要判断finally中的代码是否执行,如果没有,应先执行finally中代码再返回。
题2:
打印文件中的字符串或字符。分别运用Scanner方法和read方法。
package zuoye3;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class zuoye32 {
public static void main(String [] args) throws IOException{
FileReader reader = new FileReader("reader.txt");
//运用Scanner打印字符及字符串
Scanner sc = new Scanner (reader);
while(sc.hasNext()){
//打印字符串
String s = sc.next();
System.out.println(s);
//打印字符
String[] a = sc.next().split("");
for(int i = 0; i<a.length;i++){
System.out.println(a[i]);
}
}
//运用read方法打印字符
int ch;
while((ch = reader.read()) != -1){
System.out.println((char)ch);
}
reader.close();
}
}