JAVA-字节流练习(新手用于记录每天的作业)
参考手册:
关键字:
FileInputStream() Input是从硬盘到内存
FileOutputStream() 而output是从内存到硬盘,所以实现了复制粘贴。
read() 调用方法读取
\r\n 换行
实例:
1 import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;
2
3 import java.io.*;
4
5 public class ZJLlx {
6 public static void main(String[] args) throws IOException {
7 lx6();
8 }
9
10 private static void lx6() {
11 //currentTimeMillis 返回以毫秒为单位的当前时间。
12 //计算开始时间。
13 long s = System.currentTimeMillis();
14 FileInputStream fis = null;
15 FileOutputStream fos = null;
16 try {
17 fis = new FileInputStream("C:\\bxd.AVI");
18 fos = new FileOutputStream("D:\\bxd.AVI");
19 //创建一个字节数组,他的字节传输速度是1024*10。
20 byte[] b = new byte[1024*10];
21 //定义一个数据类型。
22 int len = 0;
23 //写入判断语句。按照字节数组的传输速度进行传送。
24 while ((len=fis.read(b))!=-1){
25 //按照b的速度,从0开始,一直到结束。
26 fos.write(b,0,len);
27 }
28 } catch (IOException e) {
29 e.printStackTrace();
30 }
31 //最终执行的代码段。
32 finally {
33 //判断是否执行,如果执行过之后就结束释放资源。
34 //如果没有执行过,就跳过If语句。
35 if (fis!=null){
36 try {
37 fis.close();
38 } catch (IOException e) {
39 e.printStackTrace();
40 } finally{
41 if (fos!=null){
42 try {
43 fos.close();
44 } catch (IOException e) {
45 e.printStackTrace();
46 }
47 }
48 }
49 }
50 //计算结束时间。
51 long e = System.currentTimeMillis();
52 //打印。
53 System.out.println(e-s);
54 }
55 }
56
57 private static void lx5() {
58 //设置对象。
59 FileInputStream fis = null;
60 FileOutputStream fos = null;
61 try {
62 //指定要复制的文件及路径。Input是从硬盘到内存。
63 fis = new FileInputStream("C:\\ja.txt");
64 //指定要粘贴的文件及路径。而output是从内存到硬盘,所以实现了复制粘贴。
65 fos = new FileOutputStream("D:\\ja.txt");
66 //定义一个数据类型。
67 int len = 0;
68 //定义判断条件。
69 while ((len = fis.read())!=-1){
70 fos.write(len);
71 }
72 } catch (IOException e) {
73 e.printStackTrace();
74 }
75 //最终执行的代码段。
76 finally {
77 //判断是否执行,如果执行过之后就结束释放资源。
78 //如果没有执行过,就跳过If语句。
79 if(fos!=null){
80 try {
81 fos.close();
82 } catch (IOException e) {
83 e.printStackTrace();
84 }
85 //最终执行的代码段。
86 finally {
87 //判断是否执行,如果执行过之后就结束释放资源。
88 //如果没有执行过,就跳过If语句,不进行判断。
89 if (fis!=null){
90 try {
91 fis.close();
92 } catch (IOException e) {
93 throw new RuntimeException("释放资源失败。");
94 }
95 }
96 }
97 }
98 }
99 }
100
101 public static void lx4() {
102 //FileInputStream 从硬盘到内存,进行显示。
103 try {
104 FileInputStream fis = new FileInputStream("D:\\ja.txt");
105 byte[] b = new byte[1024];
106 int len = 0;
107 while ((len = fis.read(b))!=-1){
108 System.out.println(new String(b,0,len));
109 }
110 } catch (IOException e) {
111 e.printStackTrace();
112 }
113
114 }
115
116 public static void lx3() {
117 //读写指定文件的内容。
118 //调用方法读取 read
119 try {
120 FileInputStream fis = new FileInputStream("D:\\ja.txt");
121 int len = 0;
122 while((len=fis.read())!=-1){
123 System.out.println((char)len);
124 }
125 } catch (IOException e) {
126 e.printStackTrace();
127 }
128
129 }
130
131 private static void lx2() throws IOException {
132 //FileOutputStream 从内存写入到硬盘,但是不会在控制台显示。
133 File file = new File("D:\\ja.txt");
134 FileOutputStream fos = new FileOutputStream(file,true);
135 fos.write("Hello \r\n".getBytes());
136 fos.write("\r\nqy\r\n97".getBytes());
137 fos.close();
138 }
139
140 public static void lx1() throws IOException {
141 FileOutputStream fos = new FileOutputStream("D:\\ja.txt");
142 fos.write(97);
143 byte[] b = {66,9,45,12,48};
144 fos.write(b,1,4);
145 fos.write("Show Arrays".getBytes());
146 fos.close();
147 }
148
149 }
打印结果:
lx1:
lx2:
lx3(读写指定文件的内容):
a
-
0
S
h
o
w
A
r
r
a
y
s
H
e
l
l
o
q
y
9
7
lx4:
a -0Show ArraysHello
qy
97
lx5:
lx6: