文件复制
来源:互联网 发布:淘宝与天猫有什么区别 编辑:程序博客网 时间:2024/06/08 11:31
首先是文件的复制,文件将数据读取出来,所以直接一边读一边写,就行,也不会涉及,文字编码的问题。
先写一个
1
void
cp(File f1,File f2);
的函数,如果想知道复制结果可以返回一个布尔型。
函数部分如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
FileInputStream fi=
new
FileInputStream(f1);
FileOutputStream fo=
new
FileOutputStream(f2);
byte
[] buffer=
new
byte
[
1024
];
int
off=
0
;
int
length=
1024
;
while
(
true
){
if
(fi.available()<
1024
)
length=fi.available();
fi.read(buffer, off,length);
fo.write(buffer, off, length);
off+=
1024
;
if
(length<
1024
)
System.out.println(f1+
"-->"
+f2+
"复制完成!"
);
fi.close();
fo.close();
return
;
使用byte数组1kb的复制,然后使用input读入f1,buffer,之后使用output写入f2,如果读取长度小于2014,说明已经到达文件尾部,使用available得到实际的长度,然后再写入。
然后要忘记关闭流。
然后是将数据读取
原题为
读取 msg.txt 中的内容,
分割出每个人的信息,样式如下: 01 张三 20 02 李四 18 。。。。
通过上面的字符串获取学号,姓名,年龄创建Student类,并将Student类的对 象保存到一个ArrayList集合中, 然后 遍历集合中的数据 通过迭代器
msg.txt01#张三#20*02#李四#18*03#王五#22*04#赵六#20*05#田七#21
首先,Student类,有三个属性.
然后,我们写的函数的应该接受一个File,然后返回一个ArrayList,泛型为Student。如下
ArrayList<Student> readStudent(File f)throws IOException
在这里先使用FileInputStream获得数据流,然后使用InputStreamReader来进行处理,是用InputStreamReader可以进行编码上的改变,对于网络应用程序来说,编码之间的转换是十分头疼的,对于系统自带的记事本来说,默认中文为GBK,有时候我们用的是UTF-8,注意编码即可。
得到数据流之后,使用read()来读取数据进入String,通过返回值是否为-1来判断是否到头。然后使用split函数来切割成String数组,在将数组里的值赋给ArrayList即可
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FileInputStream fis=
new
FileInputStream(f);
String buffer=
""
;
InputStreamReader isr=
new
InputStreamReader(fis,
"GBK"
);
int
tmp;
while
((tmp = isr.read()) != -
1
){
buffer += (
char
)tmp;
}
String stu=
new
String(buffer);
ArrayList<Student> re=
new
ArrayList<Student>();
String[] ssss=stu.split(
"[*]|[#]"
);
for
(
int
i=
0
;i<ssss.length;i+=
3
){
re.add(
new
Student(Integer.parseInt(ssss[i]), ssss[i+
1
], Integer.parseInt(ssss[i+
2
])));
}
fis.close();
return
re;
阅读全文
0 0
- 文件复制
- 文件复制
- 文件复制
- 复制文件
- 文件复制
- 复制文件
- 复制文件
- 复制文件
- 复制文件
- 复制文件
- 复制文件
- 复制文件
- 文件复制
- 复制文件
- 复制文件
- 复制文件
- 文件复制!
- 文件复制
- 网卡设置监听模式,抓取数据包
- 大型网站架构系列:负载均衡详解(4)
- 【标题党】记一个关于Redis-4.0.1版本下zslGetElementByRank函数的诡异问题
- 欢迎使用CSDN-markdown编辑器
- Qt调用Python函数
- 文件复制
- Java 8 中的 Streams API 详解
- The Same Game UVA 758/Uvalive 5423 大模拟 求最大联通块并清除
- Ubuntu部署基于Fabric的虚拟区块链服务
- 简历
- mybatis 返回 Set
- 大部分人最缺的其实是「认知」
- Lua 中,将全局函数声明为local的优缺点
- java.util.NoSuchElementException异常