`
836811384
  • 浏览: 547585 次
文章分类
社区版块
存档分类
最新评论

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



分享到:
评论

相关推荐

    Java高级程序设计:第9章-IO.pptx

    输入输出流(I/O Stream);输入流(Input Stream);输出流(Output Stream);文本文件 vs 二进制文件;文本文件 vs 二进制文件;文本文件 vs 二进制文件;文本I/O类层次结构;FileReader and FileWriter;使用FileWriter写文件-...

    corejava培训文档

    15.6. I/O输入输出 16. 十五 网络编程 16.1. 网络基础知识 16.2. TCP Socket 16.2.1. 建立TCP服务器端 16.2.2. 建立TCP客户端 16.3. 建立URL连接 16.4. UDP socket 16.4.1. 建立UDP 发送端 16.4.2. ...

    初学者学习java

    在以后的章节中,用通俗易懂的手法,紧密联系实际应用的方式,深入浅出地讲解了多线程,常用Java类,Java中的I/O(输入输出)编程,GUI与Applet,网络编程等方面的知识。 张孝祥老师从事了多年的软件开发和培训教学...

    张孝祥Java就业培训教程.pdf

    在以后的章节中,用通俗易懂的手法,紧密联系实际应用的方式,深入浅出地讲解了多线程,常用Java类,Java中的I/O(输入输出)编程,GUI与Applet,网络编程等方面的知识。 本书许多内容都来源于程序员圈子里的非正式...

    java学习笔记 初学者必读

    15.6. I/O输入输出 15-48 16. 十五•网络编程 16-52 16.1. 网络基础知识 16-52 16.2. TCP Socket 16-54 16.2.1. 建立TCP服务器端 16-54 16.2.2. 建立TCP客户端 16-55 16.3. 建立URL连接 16-55 16.4. UDP socket 16-...

    张孝祥java就业培训教程(完整版电子书)-书内源码及PPT文档

    在以后的章节中,用通俗易懂的手法,紧密联系实际应用的方式,深入浅出地讲解了多线程,常用Java类,Java中的I/O(输入输出)编程,GUI与Applet,网络编程等方面的知识。 本书许多内容都来源于程序员圈子里的非正式...

    java初学者必看

    第14章 Java I/O系统 14.1 I/O概述 14.2 文件操作 14.2.1 File类 14.2.2 File类应用 14.2.3 RandomAccessFile类 14.2.4 RandomAccessFile应用 14.3 字节流InputStream、OutputStream 14.3.1 字节输入、输出...

    corejavaNoteBook

    15.6. I/O输入输出 15-48 16. 十五•网络编程 16-52 16.1. 网络基础知识 16-52 16.2. TCP Socket 16-54 16.2.1. 建立TCP服务器端 16-54 16.2.2. 建立TCP客户端 16-55 16.3. 建立URL连接 16-55 16.4. UDP socket 16-...

    21天学通Java-由浅入深

    28 1.3 程序开发过程 29 1.4 编码规范 29 1.5 HelloWorld:第一个Java程序 30 1.5.1 编写程序代码 30 1.5.2 编译程序代码并运行 30 1.5.3 注意事项 31 1.6 使用Eclipse集成开发工具开发 32 1.7 综合练习 32 1.8 小结...

    Tcl_TK编程权威指南pdf

    注意事项 第15章 国际化(internationalization) 字符集与编码 消息目录 第16章 事件驱动的编程 tcl事件循环 after命令 fileevent命令 vwait命令 fconfigure命令 第17章 套接字编程 客户端套接字 ...

    MySQL5.1参考手册官方简体中文版

    6.3.2. 复制从I/O线程状态 6.3.3. 复制从SQL线程状态 6.3.4. 复制传递和状态文件 6.4. 如何设置复制 6.5. 不同MySQL版本之间的复制兼容性 6.6. 升级复制设置 6.6.1. 将复制升级到5.0版 6.7. 复制特性和已知问题 6.8....

    在一小时内学会 C#(txt版本)

    我将在这里讨论一些 C# 引入的新的修饰符。 readonly readonly 修饰符仅用于修饰类的数据成员。正如其名字说的,一旦它们已经进行了写操作、直接初始化或在构造函数中对其进行了赋值,readonly 数据成员就只能对其...

    mysql官方中文参考手册

    6.3.2. 复制从I/O线程状态 6.3.3. 复制从SQL线程状态 6.3.4. 复制传递和状态文件 6.4. 如何设置复制 6.5. 不同MySQL版本之间的复制兼容性 6.6. 升级复制设置 6.6.1. 将复制升级到5.0版 6.7. 复制特性和已知问题 6.8....

    MYSQL中文手册

    6.3.2. 复制从I/O线程状态 6.3.3. 复制从SQL线程状态 6.3.4. 复制传递和状态文件 6.4. 如何设置复制 6.5. 不同MySQL版本之间的复制兼容性 6.6. 升级复制设置 6.6.1. 将复制升级到5.0版 6.7. 复制特性和已知...

    MySQL 5.1参考手册中文版

    6.3.2. 复制从I/O线程状态 6.3.3. 复制从SQL线程状态 6.3.4. 复制传递和状态文件 6.4. 如何设置复制 6.5. 不同MySQL版本之间的复制兼容性 6.6. 升级复制设置 6.6.1. 将复制升级到5.0版 6.7. 复制特性和已知问题...

    MySQL 5.1参考手册

    6.3.2. 复制从I/O线程状态 6.3.3. 复制从SQL线程状态 6.3.4. 复制传递和状态文件 6.4. 如何设置复制 6.5. 不同MySQL版本之间的复制兼容性 6.6. 升级复制设置 6.6.1. 将复制升级到5.0版 6.7. 复制特性和已知问题 6.8....

    mysql5.1中文手册

    复制从I/O线程状态 6.3.3. 复制从SQL线程状态 6.3.4. 复制传递和状态文件 6.4. 如何设置复制 6.5. 不同MySQL版本之间的复制兼容性 6.6. 升级复制设置 6.6.1. 将复制升级到5.0版 6.7. 复制特性...

    网管教程 从入门到精通软件篇.txt

    Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 ...

Global site tag (gtag.js) - Google Analytics