每日java5-25

  1. 我有一个文本文件中存储了几个名称,请大家写一个程序实现随机获取一个人的名字。

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Random;

public class GetName {

public static void main(String[] args) throws IOException{

//把文本文件中的数据存储到集合中

BufferedReader
br=new BufferedReader(new FileReader(“a.txt”));

ArrayList
array=new ArrayList();

String
line=null;

while((line=br.readLine())!=null) {

array.add(line);

}

br.close();

//随机产生一个索引

Random
r=new Random();

int index=r.nextInt(array.size());

//根据该索引获取一个值

String
name=array.get(index);

System.out.println(name);

}

}

122.复制单级文件夹

分析:A:封装目录        B:获取该目录下的所有文本的File数组

C:遍历File数组,得到每一个File对象  D:把该File进行复制

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

public class CopyFolderDemo {

public static void main(String[] args) throws IOException {

File
srcFoleder =new File(“e:\demo”);

File
destFolder=new File(“e:\test”);

if(!destFolder.exists()) {

destFolder.mkdir();

}

File[]
fileArray=srcFoleder.listFiles();

for(File file:fileArray) {

String
name=file.getName();

File
newFile=new File(destFolder,name);

copyFile(file, newFile);

}

}

public static void copyFile(File file,File newFile) throws IOException {

BufferedInputStream
bis=new BufferedInputStream(new FileInputStream(file));

BufferedOutputStream
bos=new BufferedOutputStream(new FileOutputStream(newFile));

byte[] bys=new byte[1024];

int len=0;

while((len=bis.read(bys))!=-1) {

bos.write(bys,0,len);

}

}

}

  1. 复制多级文件夹

分析:
A:封装数据源File  B:封装目的地File

C:判断该File是文件夹还是文件

a:是文件      就在目的地目录下创建该文件夹,获取该File对象下的所有文件或者文件夹File对象,遍历得到每一个File对象

回到C

b:是文件      就复制(文件流)

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

public class CopyFoldersDemo {

public static void main(String[] args) throws IOException {

File
srcFile=new File(“E:\gj\demo”);

File
destFile=new File(“E:\”);

copyFolder(srcFile,destFile);

}

public static void copyFolder(File srcFile,File destFile) throws IOException {

if(srcFile.isDirectory()) {

File
newFolder=new File(destFile,srcFile.getName());

newFolder.mkdir();

File[]
fileArray=srcFile.listFiles();

for(File file:fileArray) {

copyFolder(file,newFolder);

}

}else {

File
newFile=new File(destFile,srcFile.getName());

copyFile(srcFile,newFile);

}

}

public static void copyFile(File srcFile,File newFile)throws IOException{

BufferedInputStream
bis=new BufferedInputStream (new FileInputStream(newFile));

BufferedOutputStream
bos=new BufferedOutputStream(new FileOutputStream(newFile));

byte[] bys=new byte[1024];

int len=0;

while((len=bis.read(bys))!=-1) {

bos.write(bys,0,len);

}

bos.close();

bis.close();

}

}

124.已知s.txt文件中有这样的一个字符串:“qwertyuioplkjhgfdsazxcvb”请编写程序读取数据内容,把排序后的数据写入ss.txt中

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Arrays;

public class StringDemo {

public static void main(String[] args) throws IOException{

//读取该文件的内容,存储到一个字符串中

BufferedReader
br=new BufferedReader(new FileReader(“s.txt”));

String
line=br.readLine();

br.close();

//把字符串转换为字符数组

char[] chs=line.toCharArray();

//对字符数组进行排序

Arrays.sort(chs);

//把排序后的字符数组转换为字符串

String
s=new String(chs);

//把字符串再次写入ss.txt中

BufferedWriter
bw=new BufferedWriter(new FileWriter(“ss.txt”));

bw.write(s);

bw.newLine();

bw.flush();

bw.close();

}

}

125.文件中指定字符串出現的次數。

import java.io.BufferedReader;

import java.io.File;

import java.io.FileReader;

import java.io.IOException;

import java.util.Scanner;

public class StringDemo {

public static void main(String[] args) throws IOException{

BufferedReader
reader=new BufferedReader(new FileReader(new File(“wo.txt”)));

String
s = reader.readLine(); //读取行数

System.out.println(“请输入关键字:”);

Scanner
sc=new Scanner(System.in);//从键盘接收数据

String
str=sc.nextLine();

char[] ch=str.toCharArray();

int count=0;

while (s != null){ 
//确定行数不为空

boolean b=s.contains(str);//子字符串是否被包含在此字符串之中,包含输出true,否则输出false

String[]
st=new String[s.length()-ch.length+1];

if(b==true)  {

for(int i=0;i<st.length;i++){

st[i]= s.substring(i,i+ch.length);

if(st[i].equals(str))              {

count++;

}

}

}

s = reader.readLine();

}

System.out.println(“包含 
“+str+”   次数为:”+count);//调用count,输出包含次数

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值