#千锋逆战班#

在千峰学习的第32天

今天学习了字符流,字符节点流和字符过滤流等一些流

越努力,越幸运

 File 类)以下关于File 类说法正确的是:
A.一个File对象代表了操作系统中的一个文件或者文件夹
B.可以使用File对象创建和删除一 个文件
C,可以使用File对象创建和删除- 个文件夹
D.当-个File对象被垃圾回收时,系统上对应的文件或文件夹也被删除


A B C
class TestMyFile{ 
public static void main(String args[]) throws Exception{ 
File file; 
//创建一个 File 对象表示当前目录下的“hello.txt”文件
//判断该文件是否存在
//如果该文件存在,则输出该文件的完整路径
} 
}
package com.lichenchen.ti;

import java.io.File;

public class TestDemo {

	public static void main(String[] args) {
		File file =new File("hello.txt");
		if(file.exists()){
			System.out.println(file.getAbsolutePath());
		}
		

	}

}
(字符流、桥转换)要想从某个文件中获得一个字符输出流 ,则至少有以下三种方式:
A.利用FileWriter类
B.利用PrintWriter类
C.利用FileOutputStream类,并通过OutputStreamWriter类获得Writer请简述这三种方式获得Writer的区别。


A  可以写入多个字符
B 具有自动换行的功能,比A更加便捷
C 将字节转换为字符流,可以设置字符编码
字节流、字符流)以下几种文件格式,应当使用字节流还是字符流?
I. java源文件
I. .class字节码文件
I. .html网页文件
IV. jpg图像文件
V.mp3音乐文件
字节流 1,3,5
字符流 2,4

 

事先在当前目录下准备好一个 test.txt 的文本文件,要求该文本文件是使用
GBK 编码的多行文本文件。如:
test.txt 
窗前明月光
疑是地上霜
举头望明月
低头思故乡
利用字节流+桥转换读入这个文本文件,然后按照行的顺序,以 UTF-8 的编码方
式,写到 test2.txt 文件中,例:
test2.txt 
低头思故乡
举头望明月
疑是地上霜
窗前明月光

 

package com.lichenchen.ti;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Testcovwe {

	public static void main(String[] args) throws IOException {
		InputStream is =new FileInputStream("Files\\test.txt");
		InputStreamReader isr =new InputStreamReader(is,"UTF-8");
		BufferedReader br =new BufferedReader(isr);
		FileWriter fw =new FileWriter("Files\\test2.txt");
		BufferedWriter bw =new BufferedWriter(fw);
		String str =null;
		while((str=br.readLine())!=null){
			bw.write(str);
			
			bw.newLine();
		}
		bw.flush();
在当前目录下创建一个 worldcup.txt 的文本文件,其格式如下:
2006/意大利
2002/巴西
„
该文件采用“年份/世界杯冠军”的方式保存每一年世界杯冠军的信息。
要求:读入该文件的基础上,让用户输入一个年份,输出该年的世界杯冠军。如
果该年没有举办世界杯,则输出“没有举办世界杯
package com.lichenchen.ti;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

public class TestCover {

	public static void main(String[] args)  throws Exception{
		OutputStream ops1 =new FileOutputStream("Files\\worldcup.txt");
		OutputStreamWriter  oust =new  OutputStreamWriter (ops1);
		PrintWriter pw1 =new PrintWriter(oust);
		pw1.println("2006/意大利");
		pw1.println("2002/巴西");
		pw1.flush();
		
		InputStream ins =new FileInputStream("Files\\worldcup.txt");
		InputStreamReader isr =new InputStreamReader(ins);
		BufferedReader br1 =new BufferedReader(isr);
		
	System.out.println("请输入一个年份");
		Scanner input =new Scanner(System.in);
	   String i=	input.next();
		while(true){
			
			String s =br1.readLine();
			if(s==null){
				System.err.println("没有数据啦");
				break;
			}
			if(s!=null&&s.contains(i)){
				System.out.println(s);
				continue;
				
			}else{
				System.out.println("没有举办世界杯");
				break;
			}
			

从命令行中读入一个文件名,判断该文件是否存在。如果该文件存在,则在原文
件相同路径下创建一个文件名为“copy_原文件名”的新文件,该文件内容为原
文 件 的 拷 贝 。 例 如 : 读 入 /home/java/photo.jpg 则 创 建 一 个 文 件
/home/java/copy_photo.jpg 新文件内容和原文件内容相同。
package com.lichenchen.ti;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;
public class TestFiles {

	public static void main(String[] args) throws IOException {
		Scanner input =new Scanner(System.in);
		System.out.println("请输入一个文件名");
		String str =input.next();
		File file =new File(str);
		
		if(file.exists()){
			InputStream ist =new FileInputStream(file);
			InputStreamReader inr =new InputStreamReader(ist);
			BufferedReader bw =new BufferedReader(inr);
			
			OutputStream ost =new FileOutputStream("copy"+file);
			OutputStreamWriter ousw =new OutputStreamWriter(ost);
			PrintWriter pw =new PrintWriter(ousw);
			while(true){
				String s =bw.readLine();
				if(s==null){
					break;
				}
				pw.println(s);
				pw.flush();
			}
		ost.close();
		ousw.close();
		
		}
		
		
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值