字符文件具体操作——题1,2

文件名的书写:

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

}

上一篇:spring3 jdbctemplate 注解实例


下一篇:JAVA 对文件的操作