IO

//I. 用桥转换流设置编码方式为"UTF-8", 在当前目录下创建一个文 件"test.txt",并向文件输出"你好 Java",如果文件已存在,则在原有文件内容 后面追加。 
//II. 用桥转换流读入test.txt文件,并在控制台上打印出test.txt中的内容。 
//III. 要求用try-catch-finally处理异常,并且关闭流应放在finally块中。

PrintWriter pw = null;
try{
//1 创建字节輸出流
OutputStream out = new FileOutputStream("test.txt",true);
//2使用特定的编解码方式包装字节流为字符流
Writer writer = new OutputStreamWriter(out,"UTF-8");
//3 再次对字符流进行包装
pw = new PrintWriter(writer);
pw.println("你好 Java");
//4关闭过滤流
}catch (IOException e){}
finally{
pw.close();
}
//
// II
BufferedReader br = null;
try{
//1 创建字节流
InputStream in = new FileInputStream("test.txt");
//2使用特定的编解码方式包装字节流为字符流
Reader reader = new InputStreamReader(in,"UTF-8");
//3再次对字符流进行包装
br = new BufferedReader(reader);
while(true){
String line = br.readLine();
if(line == null){break;}
System.out.println(line);
}
}catch(IOException e){}
//4关闭过滤流
finally{
try {
br.close();
} catch (IOException e) {}
}
System.out.println();

===================================================================================

try {
//使用打印流 将古诗打印到指定目的地
Writer w = new FileWriter("test.txt");
PrintWriter pw = new PrintWriter(w);
pw.println("床前明月光");
pw.println("疑是地上霜");
pw.println("举头望明月");
pw.println("低头思故乡");
pw.close();
//创建读取字节流,因为默认就是GBK 可以不使用桥转换,但这里还是写上了
InputStream is = new FileInputStream("test.txt");
InputStreamReader isr = new InputStreamReader(is ,"GBK");
//为了能够一次读取一行,使用字符输入流进行封装
BufferedReader br = new BufferedReader(isr);
List<String> list= new ArrayList<String>();
while(true){
String str = br.readLine();
if(str == null){
break;
}
list.add(str);
}
//关闭资源
br.close();
//因为要求以UTF-8的格式输出到另外一个文件当中 要使用转换流修改编解码集
OutputStreamWriter os = new OutputStreamWriter(new FileOutputStream("test2.txt"),"UTF-8");
//为了能写入一行 使用打印流封装
PrintWriter bw = new PrintWriter(os);
//将古诗倒序打印到,目的地
for (int i = list.size()-1; i >=0; i--) {
bw.println(list.get(i));
}
//关闭文件
bw.close();
InputStreamReader isre = new InputStreamReader(new FileInputStream("test2.txt"),"UTF-8");
while(true){
int value = isre.read();
if(value==-1){
break;
}
System.out.print((char)value);
}
isre.close();
} catch (IOException e) {}

 

====================================================================

InputStream is = new FileInputStream("test.txt");

// 使用桥转换流读取文件,
Reader isr = new InputStreamReader(is,"UTF-8");
BufferedReader br = new BufferedReader(isr);
// 并将每行信息解析用于创建一个Person对象
// 将Person对象放入List集合中
List<Person> list = new ArrayList<>();
while(true){
String line = br.readLine();
if(line == null){break;}
String[] ss = line.split("-");
int id = Integer.parseInt(ss[0]) ;
int age = Integer.parseInt(ss[2]);
Person p = new Person(id ,ss[1],age);
list.add(p);
}
br.close();
Person min = null;
// 遍历获取年纪最小的Person对象
for(Person p:list){
try{

if(min == null || p.getAge() < min.getAge()){
min = p;
}


}catch(Exception e){}
}
// 序列化到硬盘D:/person.obj中
OutputStream os = new FileOutputStream("D:/person.obj");
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(min);
System.out.println(min);
oos.close();

 

posted @ 2019-01-30 15:07  G_Lybbh  阅读(164)  评论(0编辑  收藏  举报