Java输入输出流2
2015-12-23 17:10
627 查看
输入流demo:
输出流demo:
import java.io.File;
import java.io.FileOutputStream;
import java.util.Scanner;
public class OutputStreamDemo1 {
public static void main(String[] args) throws Exception {
// OutputStream 字节输出流【抽象类】
// FileOutputStream
/*
* FileOutputStream(File file) 指明数据的输出路径(File)
* FileOutputStream(File file, boolean append) 指明数据的输出路径,是否允许覆盖原数据
* FileOutputStream(String name) 指明数据的输出路径(String)
* FileOutputStream(String name, boolean append)指明数据的输出路径(String),是否允许覆盖原数据
*/
// FileOutputStream(File file) 指明数据的输出路径(File)
// 创建一个文件输出路径
// D:/mytest.txt
String path = "E:" + File.separator + "mytest.txt";
// 创建一个File对象
File file1 = new File(path);
// 创建字节输出流的对象
//FileOutputStream out1=new FileOutputStream(file1);
// FileOutputStream(File file, boolean append) 指明数据的输出路径,(是否允许追加)是否允许覆盖原数据
FileOutputStream out1=new FileOutputStream(file1,true);
// 从控制台输入数据,然后在使用FileOutputStream将数据写出到E:/mytest.txt
// 创建Scanner类的对象
Scanner read = new Scanner(System.in);
System.out.println("请输入需要保存的数据:");
// 接受数据
String info = read.next();
// //写出数据
// 将String数据转换成byte[]
byte data[] = info.getBytes();
// void write(byte[] b) 写出字节数组中全部。
//out1.write(data);
// void write(byte[] b, int off, int len) 写出字节数组中部分。 // int
// off---数组的起始位置
// int len----写出的数据个数
// out1.write(data,5,5);
// void write(int b)一次写出一个字节的数据
//out1.write(data[0]);
// 写出一个字符串
for (int i = 0; i < data.length; i++) {
out1.write(data[i]);
}
// void close() 关闭此文件输出流并释放与此流有关的所有系统资源。
out1.close();
}
}
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; public class InputStreamDemo1 { public static void main(String[] args) throws Exception { /* InputStream的子类 java.io 类 FileInputStream 构造方法摘要 FileInputStream(File file) 指定读取数据的路径(File) FileInputStream(String name) 指定读取数据的路径(String) */ //FileInputStream(File file) 指定读取数据的路径(File) String path="E:"+File.separator+"mytest.txt"; //创建文件对象 File file=new File(path); FileInputStream in=new FileInputStream(file); //读取数据 //int read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个字节数组中。 //byte[] b----存储读取来的数据 //int的返回值----读取数据的字节总数。 //创建字节数组来存储读取来的数据 // byte data[]=new byte[100]; // int len=in.read(data); // void close() 关闭此文件输入流并释放与此流有关的所有系统资源。 // in.close(); //System.out.println(data);错误 //将字节数组转换成String // String info1=new String(data); // System.out.println(len); // System.out.println(info1); //hello,大家好!********************************************* //我们的字节数组有100个字节,但是实际保存数据的只有14个字节,所以就会有86个字节是空的。 //上面的这个现象怎么排除 //1.String str.trim(); //2.就是将字节数组中的数据转换成String的时候 // String info2=new String(data,0,len); // System.out.println(info2); //上述的做法只是将有数据的部分转化,没有数据的部分依然存在(内存浪费) /* //3我们创建数组的时候就指定数组的大小为文件的大小 byte data[]=new byte[(int)file.length()]; int len=in.read(data); in.close(); String info1=new String(data); System.out.println(len); System.out.println(info1); */ /*//int read(byte[] b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个字节数组中。 //byte[] b----保存读取数据的字节数组 //int off-----将读取到得数据保存到数组中起始位置 //int len-----读取的字节个数 byte data[]=new byte[(int)file.length()]; int len=in.read(data,5,5); in.close(); System.out.println(len); String info1=new String(data); System.out.println(info1);*/ /* //int read() 从此输入流中读取一个数据字节。 //int的返回值就是读取到得数据 如果已到达文件末尾,则返回 -1。 int temp=in.read(); char data=(char)temp; System.out.println(data);*/ /* //循环读取一段数据 char charray[]=new char[(char)file.length()]; int len=0; while(in.read()!=-1){ int temp=in.read(); char ch=(char)temp; charray[len]=ch; len++; } in.close(); String str=new String(charray); System.out.println(str); */ //定义一个int的变量,保存读取来的数据 int temp=0; //定义一个int的变量,循环增量 int len=0; //定义一个字节数组---保存读取来的数据 byte data[]=new byte[(int)file.length()]; //循环读取 while((temp=in.read())!=-1){ data[len]=(byte)temp; len++; } in.close(); String str=new String(data); System.out.println(str); } }
输出流demo:
import java.io.File;
import java.io.FileOutputStream;
import java.util.Scanner;
public class OutputStreamDemo1 {
public static void main(String[] args) throws Exception {
// OutputStream 字节输出流【抽象类】
// FileOutputStream
/*
* FileOutputStream(File file) 指明数据的输出路径(File)
* FileOutputStream(File file, boolean append) 指明数据的输出路径,是否允许覆盖原数据
* FileOutputStream(String name) 指明数据的输出路径(String)
* FileOutputStream(String name, boolean append)指明数据的输出路径(String),是否允许覆盖原数据
*/
// FileOutputStream(File file) 指明数据的输出路径(File)
// 创建一个文件输出路径
// D:/mytest.txt
String path = "E:" + File.separator + "mytest.txt";
// 创建一个File对象
File file1 = new File(path);
// 创建字节输出流的对象
//FileOutputStream out1=new FileOutputStream(file1);
// FileOutputStream(File file, boolean append) 指明数据的输出路径,(是否允许追加)是否允许覆盖原数据
FileOutputStream out1=new FileOutputStream(file1,true);
// 从控制台输入数据,然后在使用FileOutputStream将数据写出到E:/mytest.txt
// 创建Scanner类的对象
Scanner read = new Scanner(System.in);
System.out.println("请输入需要保存的数据:");
// 接受数据
String info = read.next();
// //写出数据
// 将String数据转换成byte[]
byte data[] = info.getBytes();
// void write(byte[] b) 写出字节数组中全部。
//out1.write(data);
// void write(byte[] b, int off, int len) 写出字节数组中部分。 // int
// off---数组的起始位置
// int len----写出的数据个数
// out1.write(data,5,5);
// void write(int b)一次写出一个字节的数据
//out1.write(data[0]);
// 写出一个字符串
for (int i = 0; i < data.length; i++) {
out1.write(data[i]);
}
// void close() 关闭此文件输出流并释放与此流有关的所有系统资源。
out1.close();
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序