`

java 中文件outputstream的操作注意

 
阅读更多
public class FileTest {
	public static void main(String[] args) {
		File file = new File("F:\\3.txt");
		if(!file.exists()) {
			try {
				file.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		} else {
			System.out.println(file.length());
		}

	}
}

 上面一段代码是很简单的文件创建操作。 

 下面,我们分析下面一段代码。

 

public class FileTest1 {
	public static void main(String[] args) {
		File file = new File("F:\\3.txt");
		System.out.println(file.length());
		OutputStream os;
		try {
			os = new FileOutputStream(file);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		System.out.println(file.length());
	}
}

 

结果为:  如果在硬盘上存在F:\\3.txt 这个文件, 则上述代码会将3.txt文件的大小(length)清0,相当于格式化。

 而如果在硬盘上不存在这个文件,则会新创建出一个大小为0的 3.txt文件。 

 如果文件存在时,使用上述代码要小心。

 

一般来说,我们在做输出流时, 文件路径是一个空的(或是硬盘上没有)文件,即当做目标文件。

普通的复制文件操作,用输入流将文件读取,将流加载至内存,在输出流中,循环将内存中的流写至目标文件。

 

对于文件内容的修改,我们常常使用字符流的方式,即Reader和Writer模式。

Reader 可以整行读取文件的内容,writer可以将字符串一次性写入目标文件。

 

下面为文件复制的代码:

public static void copy(String oldPath, String newPath) {
		try {
			int byteRead = 0;
			int byteSum = 0;
			File oldFile = new File(oldPath);
			if(oldFile.exists()) {
				FileInputStream is = new FileInputStream(oldFile);
				FileOutputStream os = new FileOutputStream(newPath);
				byte[] bt = new byte[345];
				while((byteRead = is.read(bt)) != -1) {
					byteSum += byteRead;
					System.out.println(byteSum);
					os.write(bt, 0, byteRead);
				}
				is.close();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

 

下面为文件修改的代码:

private String readFile(String filePath, DBConfigVO dbvo) {
		BufferedReader br = null;
		String line = null;
		StringBuffer buf = new StringBuffer();
		
		try {
			// 根据文件路径创建缓冲输入流
			br = new BufferedReader(new FileReader(filePath));
			// 循环读取文件的每一行, 对需要修改的行进行修改, 放入缓冲对象中
			while((line = br.readLine()) != null) {
				String[] a = new String[2];
				a = line.split(" ");
				
				for(Method m : DBConfigVO.class.getDeclaredMethods()) {
					String mName = m.getName();
					if(mName.startsWith("get")) {
						if(a[0].equals(mName.substring(3).toLowerCase())) {
								buf.append(line.substring(0, line.length() - a[1].length() - 1)).
										append(" ").append(m.invoke(dbvo).toString());
						}
					}
					if(mName.startsWith("is")) {
						if(a[0].equals(mName.substring(2).toLowerCase())) {
							buf.append(line.substring(0, line.length() - a[1].length() - 1)).
									append(" ").append(m.invoke(dbvo).toString());
						}
					}
					
				}
					
				buf.append(System.getProperty("line.separator"));
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		} finally {
			// 关闭流
			if(br != null) {
				try {
					br.close();
				} catch (IOException e) {
					br = null;
				}
			}
		}
		
		return buf.toString();
	}
	
	/**  
     * 将内容回写到文件中  
     *   
     * @param filePath  
     * @param content  
     */
	private void writeFile(String content, String filePath) {
		BufferedWriter bw = null;
		
		try {
			// 根据文件路径创建缓冲输出流
			bw = new BufferedWriter(new FileWriter(filePath));
			// 将内容写入文件中
			bw.write(content);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if(bw != null) {
				try {
					bw.close();
				} catch (IOException e) {
					bw = null;
				}
			}
		}
	}

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java文件操作

    Java文件操作是编程中不可或缺的一部分,尤其是在处理I/O流、文件读写以及文件管理时。Apache Commons IO是一个非常实用的库,它为Java开发者提供了大量的工具类和方法,以简化文件操作。在这个场景中,我们关注的是...

    基于JAVA的常用文件操作方法

    在Java编程语言中,文件操作是一项基础且重要的任务。这篇博文主要探讨了如何使用Java进行常见的文件操作,包括创建、读取、写入、删除文件以及处理目录等。以下是对这些知识点的详细说明: 1. **创建文件**: 在...

    自己写的java中文件的操作工具类,包括对目录的管理

    在Java中,`java.io`包提供了丰富的类来执行文件操作,如`File`类用于文件和目录的基本操作,`FileReader`和`FileWriter`用于读写文本文件,`BufferedReader`和`BufferedWriter`用于提高读写效率,`InputStream`和`...

    InputStream与OutputStream及File间互转

    通过上述方法,开发者可以在处理Java I/O操作时灵活地在`InputStream`、`OutputStream`和`File`之间进行转换,从而实现各种文件读写和数据传输的需求。理解并熟练运用这些技巧是编写高效、健壮的Java程序的关键。

    java 文件存储 Inputstream outputstream reader writer的用法

    通过以上的实例,你可以了解到Java中如何使用`InputStream`、`OutputStream`、`Reader`和`Writer`进行文件读写操作。不断实践这些基本的IO操作,将有助于你更好地理解和掌握Java的文件处理能力。

    java 连接 FTP 文件操作(上传,下载,删除,复制

    在IT行业中,Java是一种广泛应用的编程语言,尤其在文件操作和网络通信方面有着广泛的应用。本文将详细讨论如何使用Java连接FTP(File Transfer Protocol)服务器,进行文件的上传、下载、删除以及复制等操作。 ...

    将输出流OutputStream转化为输入流InputStream的方法

    在Java中,它们是Java.io包下的基础类,提供了多种子类来处理不同类型的输出和输入操作,如`FileOutputStream`和`FileInputStream`用于文件操作,`SocketOutputStream`和`SocketInputStream`用于网络通信等。...

    JAVA 文件常用流操作.zip

    在Java编程语言中,文件操作是一项基础且重要的任务。这个名为"JAVA 文件常用流操作.zip"的压缩包可能包含了各种关于Java中文件流使用的示例和教程。让我们深入探讨一下Java中的文件流操作。 首先,Java中的文件...

    java 复制文件 io流操作

    在这个主题中,我们将深入探讨如何使用Java的IO流进行文件复制,重点讨论四个关键函数:`Reader`, `Writer`, `InputStream`, 和 `OutputStream`。 1. **Reader与Writer**: - **Reader** 是字符输入流的抽象类,...

    Java 中对文件的读写操作之比较

    ### Java 中对文件的读写操作之比较 #### 引言 在Java中,文件的读写操作是一项基本且重要的功能。随着Java的发展,不同版本提供了多种方式来处理文件读写,这使得开发者可以根据实际需求选择最合适的方法。本文将...

    java 对excel文件操作

    在Java编程环境中,处理Excel文件是一项常见的任务,无论是数据分析、数据导入导出还是报表生成,都需要用到Excel的读写功能。本知识点将详细介绍如何使用Java进行Excel文件操作,包括读取和写入,以及涉及的工作表...

    java操作Excel文件

    在Java编程环境中,操作Excel文件是一项常见的任务,尤其在数据处理、数据分析或自动化测试等领域。本文将深入探讨如何使用Java来读取、写入和修改Excel文件,主要涉及的库有Apache POI和JExcelApi。 Apache POI是...

    流与文件 JAVA文件操作

    在Java中,处理文件操作时,我们需要特别注意资源管理,确保在完成操作后正确关闭流。不正确的流管理可能导致数据丢失、内存泄漏或系统资源浪费。Java 7引入了try-with-resources语句,可以自动关闭在try块中打开的...

    如何利用Java实现QQ文件传输功能

    注意,在文件传输过程中,需要小心处理网络异常和I/O异常,并确保在操作结束后关闭资源,如关闭文件输入输出流和Socket。 4. Java中的TCP编程 除了UDP之外,TCP也是实现文件传输的常用方式。通过Socket和...

    Java对文件的操作

    在Java编程语言中,文件操作是程序开发中常见的任务,涉及到读取、写入、复制、移动和删除文件等操作。以下是对标题和描述中提到的Java对文件操作的详细说明: 一、获取控制台用户输入的信息 在Java中,我们可以...

    Java 读写文件文本文件的示例

    Java中读写文本文件主要依赖于`InputStream`和`OutputStream`的使用,结合`Reader`和`Writer`接口的实现类如`BufferedReader`和`PrintWriter`,可以高效地完成文件的读取和写入操作。掌握这些核心类的使用是进行文件...

    JAVA 文件读写操作

    在 Java 开发过程中,文件的读写操作是非常基础且重要的功能之一。从 JDK 1.0 开始,Java 提供了两种主要的方式来处理文件读写:`InputStream` 和 `OutputStream`。这两种方式适用于二进制数据的读取与写入。 - **...

    java对文件的复制和删除(文件夹、文件)

    在Java编程中,文件操作是常见的任务之一,包括文件的复制和删除。在这个场景中,我们看到一个名为"OperateFile"的压缩包文件,它很可能包含了一个Java类或者一个项目,用于演示如何使用Java来执行这些操作。下面将...

    java实现大文件上传并有进度条及其代码解析

    Java中,我们可以使用`InputStream`和`OutputStream`来读取和写入文件,通过设置缓冲区大小,分块处理文件。例如,每次读取1MB的数据,然后将其写入服务器,这样可以有效地管理内存。 2. **多线程上传** 为了...

    Java流操作文件

    在Java中,文件操作是通过流的概念实现的,这允许我们读取、写入、移动、复制以及修改文件。下面我们将深入探讨Java流如何进行文件操作。 ### 文件I/O基础 在Java中,`java.io.File`类是处理文件和目录的基础。它...

Global site tag (gtag.js) - Google Analytics