文件名为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(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); }
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(); } }