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();
}
}
}
}