day17_io02
1.上课代码敲一遍
2.读取一个文件,这个文件中有随机的一些数字字符,统计这些数字有几个偶数,几个奇数,并且追加写入到该文件末尾。
例如:
a.txt文件:
3241256364789629090126581212515
奇数:xx个
偶数:xx个
package com.cskaoyan._17day;服务器托管网
import java.io.*;
import java.util.ArrayList;
public class Exercise {
public static void main(String[] args) throws IOException {
try {
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(new File("a.txt"))));
String lineTxt="3241256364789629090126581212515";
int a = 0;
ArrayListString> oddnumber=new ArrayList>();
ArrayListObject> evennumber=new ArrayList>();
while ((lineTxt=br.readLine())!=null){
a++;
if (a % 2 == 0) {
oddnumber.add(lineTxt);
} else {
evennumber.add(lineTxt);
}
}
br.close();
}catch (Exception e){
System.out.println("read error: " + e);
}
}
}
3.在一个磁盘的文件里保存26个英文小写字母(乱序),将他们读入内存中,进行排序,把排好顺序的数再重新追加写到磁盘的该文件中。
package com.cskaoyan._17day;
import java.io.*;
public class Exercise02 {
public static void main(String[] args) throws IOException {
FileInputStream sc = new FileInputStream("a.txt");
Reader reader = new InputStreamReader( sc );
FileOutputStream s = new FileOutputStream("a.txt", true);
Writer writer=new OutputStreamWriter( s );
char[] chars = new char[1024];
int len;
while((len = reader.read(chars)) != -1){
bubbleSort(chars,len);
writer.write("n");
writer.write(chars,0,len);
}
reader.close();
writer.close();
}
private static void bubbleSort(char arr[] , int len) {
for (int i=0; i len -1; i++) {
for (int j=0; j len -1; j++) {
if (arr[j] > arr[j + 1]){
char temp = arr[j];
arr服务器托管网[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
}
4.递归查找指定目录中(包括子目录中),所有的.java文件,并且,把所有这些找到的java文件,复制(是复制不是移动)到一个指定的目录下
package com.cskaoyan._17day;
import java.io.*;
import java.util.ArrayList;
public class Exercise03 {
public static void main(String[] args) {
File sc = new File("D:");
File file = new File("D: ");
file.mkdir();
String targetDir = "";
eachFile(sc);
//复制所有。java文件到目标文件夹
for (int i=0; i file.length(); i++) {
FileInputStream input = null;
FileOutputStream output = null;
try{
input = new FileInputStream(file.get(i));
InputStream inbuffer = new BufferedInputStream(input);
//目标文件由输出流自己创建
output = new FileInputStream(targetDir + file.get(i).getName());
OutputStream outbuffer=new BufferedOutputStream(output);
//利用字节缓冲流复制文件
byte[] b = new byte[1024];
int len;
while ((len = inbuffer.read(b)) != -1){
outbuffer.write(b,0,len);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
closeQuietly(input);
closeQuietly(output);
}
}
}
public static void closeQuietly(Closeable closeable){
try{
if (closeable != null){
closeable.close();
}
} catch (IOException e){
e.printStackTrace();
}
}
public static ArrayListFile> files = new ArrayList>();
//遍历这个文件夹内的所有子目录和文件
public static void eachFile(File file){
try{
File[] targetFile = file.listFiles();
for (int i=0; i targetFile.length; i++) {
if (targetFile[i].isDirectory()){
eachFile(targetFile[i]);
}else{
//找到所有的java文件并且放到集合中
if (targetFile[i].getName().endsWith("java")){
file.add(targetFile[i]);
}
}
}
} catch (Exception e){
e.printStackTrace();
}
}
}
5.开始写阶段6(慢慢写不急着交,周末也可以写)
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: for语句与while语句对比(打印1-10)(加入continue)
//for #include int main() { int i=0; for(i=1;i服务器托管网 { if(i==5) continue; printf(“%d “,i); } return 0; } //结果为1 2 3 4 6 7 8 9 10 /…