读写文件内容

原创 2013年12月04日 09:49:18

 

 

 

public class IOStreamDemo {
	public static void main(String[] args) {
		try {
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("C:\\file_out.txt"));
BufferedReader bufferedReader = new BufferedReader(new FileReader("c:\\hb.log"));
			String tempStr;
			while((tempStr = bufferedReader.readLine()) != null){
				System.out.println(tempStr);
				bufferedWriter.write(tempStr);
			}
			bufferedReader.close();
			//数据先是放到缓冲区中的,然后再写入文件,因此一定要用flush()方法,否则在文件中没有数据显示
			bufferedWriter.flush();
			bufferedWriter.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

与JDBC编程一样,程序里打开的文件IO资源不属于内存里的资源,垃圾回收机制无法回收该资源,所以应该显示关闭IO资源

 

使用java的IO流执行输出时,不要忘记关闭输出流,关闭输出流除了可以保证流的物理资源被回收之外,可能还可以将输出流缓冲区中的数据flush到物理节点(因为在执行close()方法之前,自动回执行输出流的flush()方法)

 

 

转换流

InputStreamReader : 将字节输入流转换成字符输入流

OutputStreamWriter : 将字节输出流转换成字符输出流

 

怎么没有把字符流转换成字节流?

字节流比字符流的使用更广泛,但是字符流比字节流操作更方便。如果有一个流已经是字符流了,也就是说,一个用起来更方便的流,为什么要转换成字节流呢?反之,如果现在有一个字节流,但我们知道这个字节流的内容都是文本内容,那么把它转换成字符流来处理会更方便一些,所以java只提供了将字节流转换成字符流的类。

public class ReadOfficeDoc {

	/*
	 * 不能直接获取doc文档中的数据,获取的全部是乱码
	 */
	public static void main(String[] args) {
		FileInputStream fis;
		try {
			fis = new FileInputStream("c:\\HUAWEI统一WebUI接口说明书.doc");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fis));
			String str;
			while((str = bufferedReader.readLine()) != null){
				System.out.println(str);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

Java使用System.in代表标准输入,即键盘输入,但这个标准输入时InputStream类的实例,使用不太方便,而且键盘输入内容都是文本内容,所以可以使用InputSteamReader将其转换成字符流,普通的Reader读取输入内容时依然不太方便,我们可以将普通的Reader再次包装成BufferedReader,利用BufferedReader的readLine()方法可以一次读取一行内容。

 

package hb.io;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class KeyInTest {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String buffer = null;
		while((buffer = br.readLine()) != null){
			if(buffer.equals("exit")){
				break;
			}else{
				System.out.println(buffer);
			}
		}
	}

}

 

使用命令编译

javac KeyInTest.java

java KeyInTest

 

备注:BufferedReader具有一个readLine()方法,可以非常方便地一次读取一行内容,所以经常把读取文本内容的输入流包装成BufferedReader,用来方便的读取输入的文本内容

 

由于PrintStream类的输出功能非常强大,通常如果我们需要输出文本内容,都应该将输出流包装成PrintStream后进行输出。

System.out的类型就是PrintStream.

package hb.io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;

public class PrintStreamTest {

	public static void main(String[] args) {
		try {
			FileOutputStream fos = new FileOutputStream("c:\\hb.txt");
			PrintStream ps = new PrintStream(fos);
			ps.println("hello");
			ps.print(new PrintStreamTest());
			ps.close();
			fos.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
		}
		
	}

}

 

相关文章推荐

QT读写文件内容

  • 2012年04月19日 19:49
  • 4KB
  • 下载

Java 中读写文件内容常见的几种方法

Java 中读写文件内容常见的几种方法

Csharp 讀寫文件內容搜索自動彈出 AutoCompleteMode

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin...

golang 读写文件内容(备份)

以下是读取文件内容package main import ( "bufio" "fmt" "io" "os" "strings" ) func main() {...
  • yatere
  • yatere
  • 2013年04月14日 23:21
  • 2912

java向文件中追加内容与读写文件内容源码

向文件尾加入内容有多种方法,常见的方法有两种: RandomAccessFile类可以实现随机访问文件的功能,可以以读写方式打开文件夹的输出流 public void seek(long pos)可以...

使用读写文件读取网页内容

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja...

RandomAccessFile类:读写文件的内容

㈠ RandomAccessFile类:可以读写文件的内容,文本文件和其它类型文件都可以读写。     注意:读写完毕后,要关闭RandomAccessFile释放对文件的操作,以及资源。通常涉及到...

自写的可以和服务器交互的文件内容替换程序(如查询数据库)

操作过程 开始的根目录:D:/Backup/桌面/新建文件夹获取子目录,操作路径:D:/Backup/桌面/新建文件夹获取子目录操作完成获取目录下文件,操作路径:D:/Backup/桌面/新建文件夹获...
  • qidizi
  • qidizi
  • 2011年01月18日 16:25
  • 380

文件内容读写的几种方式

1.java-io体系最底层工具 上述是用来创建文件夹或文件的,而这个是用来读写文件的; 读(input);写(output);A.读:FileInputStream: // FileInput...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:读写文件内容
举报原因:
原因补充:

(最多只允许输入30个字)