`
imaginecup
  • 浏览: 87409 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java编程思想 IO6 文件操作源码

阅读更多
package com.dirlist;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringReader;

public class FileOutputShortcut {
	/**
	 * 文本文件输出的快捷方式
	 */
	static String file="FileOutputShortcut.out";
	public static void main(String[] args) throws IOException {
		BufferedReader in=new BufferedReader(new StringReader(BufferedInputFile.read("src/com/dirlist/FormattedMemoryInput.java")));
		PrintWriter out=new PrintWriter(file);
		int lineCount=1;
		String s;
		while((s=in.readLine())!=null){
			out.println(lineCount+++":   "+s);
		}
		out.close();
		in.close();
		System.out.println(BufferedInputFile.read(file));
	}

}


package com.dirlist;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class UsingRandomAccessFile {

	/**
	 * 读写随机访问文件
	 */
	static String file="rtest.dat";
	static void display() throws IOException{
		//创建从中读取和向其中写入(可选)的随机存取文件流,该文件具有指定名称。将创建一个新的 FileDescriptor 对象来表示到文件的连接。 
		//mode 参数指定用以打开文件的访问模式。
		RandomAccessFile rf=new RandomAccessFile(file,"r");
		for(int i=0;i<7;i++){
			System.out.println("value "+i+": "+rf.readDouble());
		}
		System.out.println(rf.readUTF());
		rf.close();
	}
	public static void main(String[] args) throws IOException {
		RandomAccessFile rf=new RandomAccessFile(file,"rw");
		for(int i=0;i<7;i++){
			rf.writeDouble(i*1.414);
		}
		rf.writeUTF("The end of file");
		rf.close();
		display();
		rf=new RandomAccessFile(file,"rw");
		rf.seek(5*8);
		rf.writeDouble(45.666678);
		rf.close();
		display();
		
		
	}

}


package com.dirlist;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class StoringAndRecoveringData {

	/**
	 * 存储和恢复数据
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		DataOutputStream out=new DataOutputStream(new BufferedOutputStream(new FileOutputStream("Data.txt")));
		out.writeDouble(3.1415926);
		out.writeUTF("That is pi");//以与机器无关方式使用 UTF-8 修改版编码将一个字符串写入基础输出流。
		out.writeDouble(1.41413);
		out.writeUTF("Suuare root of 2");
		out.close();
		DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream("Data.txt")));
		System.out.println(in.readDouble());
		System.out.println(in.readUTF());
		System.out.println(in.readDouble());
		System.out.println(in.readUTF());
		in.close();
		
		
	}

}

package net.mindview.util;

import java.io.*;
import java.util.Arrays;
import java.util.Iterator;

import net.mindview.util.Directory.TreeInfo;

public class BinaryFile {

	/**
	 * 读取二进制文件
	 * 
	 * @throws IOException
	 */
	public static byte[] read(File bFile) throws IOException {
		BufferedInputStream in = new BufferedInputStream(new FileInputStream(
				bFile));
		byte[] data = new byte[in.available()];
		in.read(data);
		in.close();
		return data;

	}

	public static byte[] read(String bFile) throws IOException {
		return read(new File(bFile).getAbsoluteFile());
	}

	public static int testRead(File file) throws IOException {
		char[] c = new char[2];
		DataInputStream in = new DataInputStream(new FileInputStream(file));
		return in.readInt();//从所包含的输入流中读取此操作需要的字节。 

	}

	public static void main(String[] args) {
		try {
			for(byte item:read("src/net/mindview/util/TextFile.java")){
				System.out.print((char)item);
			}
			Iterator<File> iterator = TreeInfo.walk(".", ".*\\.class").files
					.iterator();
			while (iterator.hasNext()) {
				File file = (File) iterator.next();
				//所有的.class文件都是以CAFEBABE开头的
				System.out.println(Integer.toHexString(testRead(file)).toUpperCase());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}


package net.mindview.util;

import java.io.*;
import java.util.*;
public class TextFile extends ArrayList<String>{

	/**
	 * 文件读写的实用工具
	 * @throws IOException 
	 */
	//Read a file as a single String
	public static String read(String filename) throws IOException{
		StringBuilder sb=new StringBuilder();
		BufferedReader br=new BufferedReader(new FileReader(new File(filename).getAbsoluteFile()));
		String s;
		while((s=br.readLine())!=null){
			sb.append(s+"\n");
		}
		br.close();
		return sb.toString();
	}
	//Write a single file in one method call
	public static void write(String filename,String text) throws IOException{
		File path=new File(filename).getAbsoluteFile();
		PrintWriter pw=new PrintWriter(path);
		pw.print(text);
		pw.close();
	}
	//Read a file,split by any regular expression
	public TextFile(String filename,String splitter) throws IOException{
		super(Arrays.asList(read(filename).split(splitter)));
		//System.out.println(get(0)+"======================");
		if(get(0).equals(""))
			System.out.println("++++++++++++++++");
			remove(0);
	}
	//Normally read by lines:
	public TextFile(String filename) throws IOException{
		this(filename,"\n");
	}
	public void write(String filename) throws IOException{
		PrintWriter out=new PrintWriter(new File(filename).getAbsoluteFile());
		for(String item:this){
			out.println(item);
		}
		out.close();
	}
	public static void main(String[] args) throws IOException {
		String  file=read("src/net/mindview/util/TextFile.java");
		write("text.txt",file);
		//System.out.println(read("text.txt"));
		TextFile tf=new TextFile("text.txt");
	//	System.out.println(read("text.txt"));
		tf.write("text2.txt");
	//	System.out.println(read("text2.txt"));
		//非词字符
		TreeSet<String> words=new TreeSet<String>(new TextFile("src/net/mindview/util/TextFile.java","\\W+"));
		System.out.println(words.toString());
		//headSet(E toElement)返回此 set 的部分视图,要求其元素严格小于 toElement。
		System.out.println(words.headSet("a"));
	}

}

 

0
0
分享到:
评论

相关推荐

    java编程思想练习题答案

    《Java编程思想》是Bruce Eckel的经典之作,它深入浅出地介绍了Java语言的核心概念和技术。这本书中的练习题是学习者提升技能的重要途径,而这个压缩包提供的就是这些练习题的解答,以源码的形式保存为.java文件。...

    Java编程思想 中文文档

    《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的程序员来说都是极好的学习资源。中文文档的出现使得更多的中国开发者能够无障碍地理解这本权威...

    Java编程思想侯捷编译第二版

    《Java编程思想》是Java开发领域的一本经典著作,由美国著名程序员Bruce Eckel撰写,侯捷翻译的中文版在中文读者中广受欢迎。这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的开发者来说,都...

    java 编程思想

    "Java编程思想第四版源码"则包含了书中所有示例的完整代码,读者可以直接运行和调试,加深对理论知识的理解。 总的来说,这本书不仅讲解了Java的基本语法和高级特性,还涵盖了企业级开发中常用的技术,是学习和进阶...

    Java编程思想_第4版_源代码

    《Java编程思想》是Bruce Eckel的经典之作,其第四版更是深受全球程序员喜爱。这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和经验丰富的开发者来说都是极好的参考资料。书中通过大量的实例来讲解...

    java编程思想笔记

    《Java编程思想笔记》是基于 Bruce Eckel 的经典著作 "Thinking in Java" 所做的学习总结,这本书深入浅出地介绍了Java语言的核心概念和技术。在本文中,我们将围绕Java编程的一些关键知识点进行深入探讨,包括但不...

    基于java语言开发的提醒簿程序源码

    8. **文件I/O操作**:为了保存用户的提醒数据,程序可能实现了文件读写功能,使用java.io或java.nio包中的类进行数据持久化。 9. **设计模式**:在实现提醒簿的某些功能时,可能会用到设计模式,如单例模式(用于...

    Java电子相册源码.rar

    【Java电子相册源码】是一个使用Java编程语言开发的项目,主要目的是实现一个功能丰富的电子相册应用。这个源码提供了对图片展示、管理、编辑等基本功能的支持,是学习和理解Java图形用户界面(GUI)编程以及文件...

    JAVA API官方源码

    Java API是Java编程语言的核心库,它包含了众多用于构建应用程序的基本类和接口。在Java 1.8.0版本中,这些API源码被封装在`src.zip`压缩包内,位于JDK安装目录下。这个压缩包为开发者提供了一个深入了解Java内部...

    经典java实例源码

    总结来说,"经典java实例源码"是一个宝贵的教育资源,它提供了一条从理论到实践的学习路径,帮助初学者通过实际操作来掌握Java编程。无论你是Java新手还是有经验的开发者,都可以从中受益,不断提升自己的编程技巧和...

    java源码:JActor的文件持久化组件 JFile.zip

    1. **文件I/O操作**:Java的`java.io`包提供了对文件进行读写操作的基础API,如`File`类用于文件的创建、删除、重命名等操作,`InputStream`和`OutputStream`用于读写二进制数据,`Reader`和`Writer`用于读写文本...

    孙卫琴《Java面向对象编程》配套PPT及书中源码

    《Java面向对象编程》是孙卫琴先生撰写的一本深入探讨Java编程的著作,尤其注重面向对象的思想和实践。这本书的配套PPT和源码,为读者提供了丰富的学习资源,帮助理解和掌握Java语言的核心概念。 PPT部分,通常包含...

    传智播客毕向东java视频源码

    源码是理解编程思想和实现机制的关键。通过分析和学习这些源代码,我们可以深入掌握Java编程的核心概念和最佳实践。以下是一些可能涵盖的知识点: 1. **基础语法**:源代码可能包括变量声明、数据类型、运算符、...

    韩顺平java从入门到精通视频教程源码笔记

    这部教程旨在帮助初学者快速掌握Java编程语言,同时也适合有一定基础的开发者进行巩固和提升。通过视频教学与配套的源码笔记,学习者可以全方位地理解Java的核心概念和技术。 Java是一种广泛应用于企业级应用、移动...

    JAVA达内上课源码

    源码是编程学习的重要组成部分,通过分析和研究源代码,学员可以深入理解编程思想、设计模式以及Java语言的特性和规范。 【描述】"JAVA达内上课源码JAVA达内上课源码JAVA达内上课源码" 重复的信息强调了这是关于...

    疯狂java实战讲义源码

    这个压缩包文件的核心内容是关于Java编程语言的实际应用和深入理解,旨在帮助读者巩固理论知识,提升实践能力。 在Java的世界里,源码是学习的最佳教材,因为它们揭示了程序背后的逻辑和实现细节。通过阅读和分析...

    140个Java源码实例

    "140个Java源码实例"是一份珍贵的学习资源,它包含了多个实际编程场景下的代码示例,旨在帮助初学者更好地理解和掌握Java编程。 在学习这140个Java源码实例时,我们可以按照以下主要知识点进行分类和深入学习: 1....

    框架源码 API JAVA

    在Java中,API包含了丰富的类库,如集合框架、IO流、网络编程、多线程等,这些都是构建应用程序的基础。 深入学习框架源码,我们需要了解以下几个关键知识点: 1. **设计模式**:大部分框架都采用了多种设计模式,...

    Thinking in java 第三版和第四版

    书中附带的源码是理解理论知识的关键,通过阅读和运行这些源代码,读者可以直观地看到Java编程的实际效果,从而加深对编程概念的理解。源码包含各种设计模式的实现,这对于提高软件设计能力非常有帮助。 "Thinking ...

Global site tag (gtag.js) - Google Analytics