文件输出流FileOutputStream,课后练习的实现。要求:1.实现使用write(char[] cbuf)方法把中英文字符分别写入File。
2.实现使用write(int c)方法把中英文字符分别写入File。
实现结果:1.用write(char[] cbuf)方法是因为把字符串转换成了byte数组,故中英文字符都能写入,且不是乱码。
2.用write(int c)方法进行写入是是一个字节一个字节写入的,故写入时只有英文字符和数字字符是正常显式,中文字符是乱码,因为一个汉字是两个字节。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 1.实现使用write(char[] cbuf)方法把中英文字符分别写入File。
* 2.实现使用write(int c)方法把中英文字符分别写入File。
* @author Administrator
*
*/ class Outputwriteinti {
public static void main(String[] args) {
//用作使用write(char[] cbuf)方法时使用 写入英文字符
String s="asfgfhgjlkjjlqee";
//用作使用write(char[] cbuf)方法时使用 写入中文字符
String ss="今天天气好晴朗,处处好风光。";
//用作使用write(int c)方法时使用
String s1="asfgfhgjlkjjlqee-----今天天气好晴朗,处处好风光。------";
//创建输出流对象
FileOutputStream fx=null;
FileOutputStream fy=null;
//创建文件
File fa=new File("F:\\sun\\x.txt");
File fb=new File("F:\\sun\\y.txt");
// 文件如果不存在就创建
if(!fa.exists()){
try {
fa.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(!fb.exists()){
try {
fb.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
//给输出流对象赋值
fx=new FileOutputStream(fa);
fy=new FileOutputStream(fb);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//用write(int c)方法 每次写入单个字符。
for(int i=0;i<s1.length();i++){
try {
fx.write(s1.charAt(i));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//字符串变字符数组
byte [] b=s.getBytes();
byte [] bb=ss.getBytes();
try {
//将数据写入输出流对象
fx.write(b);
fy.write(b, 0, s.length()/2);
fx.write(bb);
fy.write(bb, 0, 12);//一个汉字是两个字节
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
//文件不为空的时候关闭文件(因为可能会创建失败 创建失败的话就为空 就不用关)
if(fx!=null){
try {
fx.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(fy!=null){
try {
fy.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
输入流用于从源(如文件、网络连接等)读取数据,而输出流则用于向目的地(如磁盘、显示器、网络等)写入数据。根据处理的数据单位,流又分为字节流(Byte Stream)和字符流(Character Stream)。 二、字节流与...
除此之外,Java还提供了缓冲流(Buffered)、转换流(InputStreamReader/OutputStreamWriter)、对象流(ObjectInputStream/ObjectOutputStream)以及文件流(FileInputStream/FileOutputStream)等特定功能的流。...
练习-java输入输出之文件字节io流之合并文件以下是一个示例Java程序,演示如何使用文件字节IO流合并两个文件:见附件在上面的示例中,我们首先定义了要合并的两个文件名和合并后的文件名。然后,我们使用...
Java中的IO流主要用于处理文件输入输出、网络通信等场景。 #### 2. IO流分类 - **按方向分:** - 输入流(InputStream):从文件、网络等读取数据。 - 输出流(OutputStream):将数据写入文件、网络等。 - **按...
OutputStream则是所有字节输出流的基类,例如FileOutputStream、BufferedOutputStream等。这些类提供了读写字节的基本操作,如read()和write()方法。 字符流则专门用于处理文本数据,它以字符为单位进行操作。...
- 字节流:如`FileInputStream`用于从文件读取字节数据,`FileOutputStream`用于向文件写入字节数据。它们是低级别的流,适合处理任何类型的数据。 - 字符流:` FileReader`和`FileWriter`是处理文本文件的字符流...
Java 输入流与输出流是Java I/O系统的基础,它们用于在程序与外部资源(如文件、网络连接等)之间传输数据。在Java中,数据的流动可以被抽象为流(Stream),分为字节流(Byte Stream)和字符流(Character Stream)...
在本例中,我们主要涉及的是文件输出流,因为我们要将日志信息写入到文件中。 要实现`MyLog`类,我们首先需要导入相关的Java I/O库,例如`java.io.File`,`java.io.FileOutputStream`,`java.io.PrintStream`等。`...
例如,FileInputStream和FileOutputStream是最常见的字节流实现,分别用于读取和写入文件。在这个练习中,开发者可能会创建一个循环,逐字节地读取交易数据并写入到文件中,形成一个每日交易记录的日志。 接下来是...
综上所述,Java中的输入流与输出流是核心的I/O概念,字符流与字节流各有其特定用途,理解它们的差异和使用场景对于进行有效的文件操作至关重要。在实际编程中,通常会结合使用缓冲流(如`BufferedReader`和`...
Java输入输出流是Java编程语言中用于数据传输的核心组件,广泛应用于文件操作、网络通信以及数据的序列化与反序列化等场景。在Java中,I/O(Input/Output)流被设计为一种对象,它们能够读取或写入数据到不同的源和...
`FileOutputStream`用于写入字节流到文件,`FileWriter`用于写入字符流。 5. `BufferedInputStream`的构造方法通常接受一个`FileInputStream`作为参数,以提供缓冲功能。类似地,`BufferedReader`通常通过`...
例如,一个名为"MainFrame.java"的文件可能包含了Swing主窗口的定义,而"DataProcessor.java"可能包含了处理输入输出流的逻辑。 总结来说,这个练习项目涵盖了Swing GUI的构建和使用Java I/O流处理数据的基本概念。...
在Java编程中,输入/输出流(Input/Output Stream)是处理数据传输的核心部分,无论是从键盘读取用户输入,还是将数据写入文件或网络。Java I/O流体系结构提供了一种统一的方式来处理不同类型的数据流,包括字节流和...
例如,`new FileInputStream("file.txt")` 创建一个从指定文件读取数据的输入流,而`new FileOutputStream("output.txt")` 创建一个向指定文件写入数据的输出流。 3. **字符流与字节流**:Java还提供了字符流...
在本例中,`FileOutputStream`用于创建一个输出流到指定的文件路径("e:\\out.txt")。 ```java FileOutputStream fos = new FileOutputStream("e:\\out.txt"); ``` ### 2. 字符串转换为字节数组 为了将字符串...
字节流以8位字节为基本单元,包括InputStream和OutputStream作为基类,衍生出众多子类,如FileInputStream和FileOutputStream用于文件操作,DataInputStream和DataOutputStream用于处理结构化数据,以及...
过滤流如`BufferedReader`和`PrintWriter`提供了一些高级功能,如缓冲、格式化输出等。对象序列化(Serialization)是将Java对象转化为字节流,以便存储或网络传输,这涉及到`ObjectOutputStream`和`...
字节输出流主要由`OutputStream`类及其子类代表,如`FileOutputStream`用于向文件写入字节数据。在实验中,练习一要求使用`FileOutputStream`向文件写出单个字节,而练习二则需要写出一个字节数组,这可以通过`write...