package com.test.io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
*
* @author 亚当爱上java
* 用例内容:文件输入流和文件输入流结合用例,字节流方式
* 时间:2010-06-20
* 注意事项:文件输入流和文件输出流都是相对与内存来说的,例如通过程序读取文件时往内存输入数据就是文件输入流
*/
public class FileInputOrOutput {
public static void main(String[] args) {
// 文件或者路径名的抽象表现形式,意思就是说之后如果进行操作的话就是全部在这个抽象路径名所指向的文件或者文件加中
File file = new File("e:/test.txt");
File file2 = new File("e:/test1.txt");
// 文件字节数的个数
// System.out.println(file.length());
try {
/*------------------------------------------读操作部分-----------------------------------------------*/
//文件输入流对象
InputStream fis = new FileInputStream(file);
// 文件输入流对象所读取的字节数大小
// System.out.println(fis.available());
/**
* 1.按照一个字节为单位进行读取数据,弊端是遇到中文就会把中文的汉字拆开从而出现乱码
*/
// //流对象读出的返回值是每次所读到的一个字符所对应的ascii码值
// int i = fis.read();
//
// //如果已经读到文件尾则i==-1,此时终止循环
// while(i!=-1){
// System.out.print((char)i);
// 保证每一次循环都继续往后读取一个字符,否则i的值不变会成为死循环
// i = fis.read();
// }
/**
* 2.按照一个字节数组所指定的大小为单位进行读取,每次最多可以读取数组定义的大小的字节个数
*/
// 每次读取都以1K字节作为单位来进行
byte b[] = new byte[1024];
// 流对象读出并返回的是每次读取字节的个数,最大每次读取自己数可以和数组b.length相同
// b中存储了每次所读取的所有数据
int i = fis.read(b);
String str = "";
// 如果已经读到文件尾则i==-1,此时终止循环
while (i != -1) {
// 把每次读取的字节数组解码为字符串
// 参数1:要解码为字符的字节
// 参数2:要解码的首字符的索引
// 参数3:要解码的字节的个数,如果文件个数大于所设定的一次读取文件的大小时i的取值就是
// b.length,否则小于数组的字节大小时则为实际的读取出自己数的大小
str = str + new String(b, 0, i);
// 保证每一次都往文件的下一部分进行读取,否则i值没有变化会成为死循环
i = fis.read(b);
}
// System.out.print(str);
// 关闭输入流对象
fis.close();
/*------------------------------------------写操作部分-----------------------------------------------*/
//文件输出流对象
OutputStream fos = new FileOutputStream(file2);
//str是从file所指定的文件中读出的所有内容,将此内容写入另一个文件中
//将字符解码为字节数组
byte b2[] = str.getBytes();
//将解码后的字节数组,通过文件输出流对象写入到缓冲区中
fos.write(b);
//强制将缓冲区中的内容输出到文件中
fos.flush();
//关闭输出流对象
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
- 测试用例:验证转换功能是否正常工作的样例输入和预期输出。 - README文件:可能包含项目的简要介绍、如何运行和使用该项目的说明。 在进行文件转换时,开发者需要注意处理各种特殊情况,比如复杂的表格、图片、...
2. **IO流**:在Java中,文件切割的核心在于使用输入/输出流(IO流)。`java.io`包提供了对文件读写的基本支持,如FileInputStream和FileOutputStream,它们分别用于读取和写入文件。 3. **BufferedInputStream和...
字节流分为输入流(InputStream)和输出流(OutputStream),主要用来处理二进制数据,如图像、音频、视频文件等。Java中的字节流基类有InputStream和OutputStream,它们都位于java.io包下。例如,FileInputStream和...
`java.io`提供了基础的输入/输出流类,如File类,用于文件的创建、读写、删除等操作;而`java.nio`提供了更高级的非阻塞I/O功能,包括通道、缓冲区和文件系统视图等。在模拟文件系统时,开发者可能自定义了类,如`...
1. **文件操作**:Java中的`java.io`包提供了对文件进行读写操作的功能。在这个电话簿程序中,可能使用了`FileWriter`和`FileReader`类来写入和读取电话簿数据到文件中。为了持久保存数据,程序可能会将联系人信息...
7. **IO流**:Java的输入/输出系统是其强大的特性之一,实验可能包括文件的读写,以及不同类型的流(字节流和字符流)的使用。 8. **字符串处理**:String类是Java中的重要部分,实验可能涵盖字符串的创建、比较、...
4. **IO流**:在Java中,文件操作通常涉及到`java.io`包中的输入输出流。为了读取和写入文件,我们需要使用FileInputStream和FileOutputStream,将加密后的数据写入文件,或者从文件中读取明文数据。 5. **...
标题中的"four_javafile_"可能是指一个Java编程项目或任务,涉及到文件操作和字符串处理。这个项目或任务的核心是编写一个程序,能够实现从一个文件到另一个文件的复制,但在此过程中,对复制的文本进行一定的格式化...
Java成绩管理系统是一个基于Java编程语言开发的软件应用,主要用于高校或教育机构进行期末成绩的录入、存储、查询和管理。这个软件的2.1.0版本着重于利用文件系统来持久化存储数据,确保即便在软件关闭后也能保留...
在Java编程环境中,当需要与Web服务器交互,例如上传文件时,`HttpURLConnection`是一个常见的选择,因为它提供了灵活且高效的方式。本篇文章将详细讲解如何使用`HttpURLConnection`实现文件上传,同时涉及到服务器...
在压缩和解压缩过程中,我们需要用到输入流(InputStream)和输出流(OutputStream)来读取和写入文件。例如,FileInputStream和FileOutputStream分别用于读写文件,而GZIPOutputStream和GZIPInputStream则用于压缩...
我们可以通过遍历输入流中的每一个字符,根据预定义的规则判断当前字符序列是否匹配某个词法单元。 为了实现这个过程,可以使用状态机模型,它包含一个或多个状态,每个状态对应一种字符或字符序列的处理方式。当...
描述中的链接指向了一篇2012年的博客文章,虽然具体内容没有提供,但通常这样的文章会深入讲解如何在Java中使用RandomAccess接口或者类,如java.io.RandomAccessFile,它允许对文件进行随机读写操作。...
Java中的`java.io`包提供了丰富的类来进行文件的读写操作,如`File`用于文件对象的创建和管理,`FileReader`和`FileWriter`进行文本文件的读写,`BufferedReader`和`BufferedWriter`则可以提高读写效率。 2. **...
本话题聚焦于使用Java、Selenium和File操作与Excel文件进行中心集合测试,这是一种常见且实用的测试策略。以下是对这些技术及其应用的详细解析: 1. **Java**: Java是一种广泛使用的面向对象的编程语言,以其跨平台...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许我们与各种设备、文件、网络以及内存数据流进行交互。在这个"java io examples"压缩包中,可能包含了一...
从压缩包内的文件名"StanderdIO.java"来看,这可能是作者提供的一个示例代码,演示了如何在Java程序中使用标准输入输出进行数据的读写。通常,这样的代码会包含创建BufferedReader和PrintWriter对象,以及它们的...
在Java编程语言中,设计和实现一个文件压缩与解压缩工具涉及到多个核心概念和技术。首先,我们需要理解文件I/O操作,这是任何文件处理程序的基础。Java提供了`java.io`包,其中包含各种类用于读写文件,如`File`, `...
Java的`java.io`和`java.nio`包提供了处理输入/输出的基础类,如FileInputStream和FileOutputStream用于读写文件,而BufferedInputStream和BufferedOutputStream则提高了数据传输的效率。 2. **压缩库**:Java标准...
4. **输入输出处理**:为了实际读写文件,需要实现从字节流到符号的转换,以及从符号到字节流的转换。这通常涉及字节缓冲区和位操作。 5. **测试和优化**:编写测试用例,确保编码和解码的一致性,同时优化性能,如...