JAVA之I/O输入输出的一些注意事项

来源:互联网 发布:淘宝客店铺推广链接 编辑:程序博客网 时间:2024/05/17 04:02

1.关于行分隔符的问题,先看一段代码:

package MyText1;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;public class MyText1 {public static void main (String []args){String str[] = {"我有一头小毛驴", "我从来也不骑", "啊哈哈~~"};//char str[] = {'我', '有', '一', '头', '小', '毛', '驴'};File file = new File("G:\\bin\\helloworld.txt");if(!file.exists()){try{file.createNewFile();FileWriter write = new FileWriter(file);BufferedWriter out = new BufferedWriter(write);for(int i = 0 ; i < 3; i++){out.write(str[i]);out.newLine();//添加行分隔符}//out.write(str);out.close();}catch(Exception e){e.printStackTrace();}}else{try{FileReader read = new FileReader(file);BufferedReader in = new BufferedReader(read);System.out.println("=======================");for(int i = 0 ; i < 3; i++){String str1 = in.readLine();System.out.println(str1);}System.out.println("=======================");/*int length;char[] str1 = new char[1024];length = in.read(str1);System.out.println(new String(str1, 0, length));System.out.println("=======================");*/in.close();}catch(Exception e){e.printStackTrace();}}}}

输出结果:

=======================我有一头小毛驴我从来也不骑啊哈哈~~=======================

由此可见,方法:

for(int i = 0 ; i < 3; i++){String str1 = in.readLine();System.out.println(str1);}

不读取分隔符

再看另外一种方法:

package MyText1;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;public class MyText1 {public static void main (String []args){String str[] = {"我有一头小毛驴", "我从来也不骑", "啊哈哈~~"};//char str[] = {'我', '有', '一', '头', '小', '毛', '驴'};File file = new File("G:\\bin\\helloworld.txt");if(!file.exists()){try{file.createNewFile();FileWriter write = new FileWriter(file);BufferedWriter out = new BufferedWriter(write);for(int i = 0 ; i < 3; i++){out.write(str[i]);out.newLine();//添加行分隔符}//out.write(str);out.close();}catch(Exception e){e.printStackTrace();}}else{try{FileReader read = new FileReader(file);BufferedReader in = new BufferedReader(read);/*System.out.println("=======================");for(int i = 0 ; i < 3; i++){String str1 = in.readLine();System.out.println(str1);}*/System.out.println("=======================");int length;char[] str1 = new char[1024];length = in.read(str1);System.out.println(new String(str1, 0, length));System.out.println("=======================");in.close();}catch(Exception e){e.printStackTrace();}}}}

输出结果:

=======================我有一头小毛驴我从来也不骑啊哈哈~~=======================

由此可见方法:

int length;char[] str1 = new char[1024];length = in.read(str1);System.out.println(new String(str1, 0, length));


读取行分隔符

2.FileOutputStream与BufferedOutputStream的write方法完全一样,FileInputStream与BufferedInputStream的read方法完全相同。


3.DataOutputStream与DataInputStream的使用

package MyText1;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;public class MyText1 {public static void main (String []args){String str = "我有一头小毛驴";File file = new File("G:\\bin\\helloworld.txt");if(!file.exists()){try{file.createNewFile();FileOutputStream write = new FileOutputStream(file);DataOutputStream out = new  DataOutputStream(write);out.writeUTF(str);out.close();}catch(Exception e){e.printStackTrace();}}else{try{FileInputStream read = new FileInputStream(file);DataInputStream in = new DataInputStream(read);System.out.println(in.readUTF());in.close();}catch(Exception e){e.printStackTrace();}}}}



原创粉丝点击