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

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值