日期: 2022-09-21 05:11:23 浏览数:6

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
高端!网站定制/设计/优化/二次开发/制作/搭建-新泰高端网站建设

copyfile.createNewFile(); fileInputStream = new FileInputStream(sourcefile); fileOutputStream = new FileOutputStream(copyfile); byte b[] = new byte[8192]; int len = b.length; while ((len = fileInputStream.read(b, 0, len)) > 0) { fileOutputStream.write(b, 0, len); fileOutputStream.flush(); } System.out.println("file copied"); fileInputStream.close(); fileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } }}执行程序,可以看到创建了一个 testcopy.txt 文件,内容为:
I love Java, I love JavaI love Java, I love JavaI love Java, I love JavaI love Java, I love JavaI love J
Java Scanner 类
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
下面是创建 Scanner 对象的基本语法:
Scanner s = new Scanner(System.in);
接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:
使用 next 方法:
ScannerDemo.java 文件代码:
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (scan.hasNext()) {
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
}
scan.close();
}
}
执行以上程序输出结果为:
$ javac ScannerDemo.java
$ java ScannerDemo
next方式接收:
runoob com
输入的数据为:runoob
可以看到 com 字符串并未输出,接下来我们看 nextLine。
使用 nextLine 方法:
ScannerDemo.java 文件代码:
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// nextLine方式接收字符串
System.out.println("nextLine方式接收:");
// 判断是否还有输入
if (scan.hasNextLine()) {
String str2 = scan.nextLine();
System.out.println("输入的数据为:" + str2);
}
scan.close();
}
}
执行以上程序输出结果为:
$ javac ScannerDemo.java
$ java ScannerDemo
nextLine方式接收:
runoob com
输入的数据为:runoob com
可以看到 com 字符串输出。
next() 与 nextLine() 区别
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:
ScannerDemo.java 文件代码:
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.print("输入整数:");
if (scan.hasNextInt()) {
// 判断输入的是否是整数
i = scan.nextInt();
// 接收整数
System.out.println("整数数据:" + i);
} else {
// 输入错误的信息
System.out.println("输入的不是整数!");
}
System.out.print("输入小数:");
if (scan.hasNextFloat()) {
// 判断输入的是否是小数
f = scan.nextFloat();
// 接收小数
System.out.println("小数数据:" + f);
} else {
// 输入错误的信息
System.out.println("输入的不是小数!");
}
scan.close();
}
}
执行以上程序输出结果为:
$ javac ScannerDemo.java
$ java ScannerDemo
输入整数:12
整数数据:12
输入小数:1.2
小数数据:1.2
以下实例我们可以输入多个数
高端!网站定制/设计/优化/二次开发/制作/搭建-新泰高端网站建设
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
catch(FileNotFoundException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } finally { try { //输出完成后关闭输入输出流 fileInputStream.close(); fileOutputStream.close(); } catch(IOException e) { e.printStackTrace(); } } }}童帅的二叔
120***7857@qq.com
乔乔
287***2758@qq.com
有时需要列出目录下指定类型的文件,例如:. java、. txt 等扩展名的文件。可以使用File类的下述两个方法,列出指定类型的文件:
上述两个方法的参数 FilenameFilter 是一个接口,该接口有一个方法:
File 对象 f 调用 list 方法时,需向该方法传递一个实现 FilenameFilter 接口的对象,list 方法执行时,参数 obj 不断回调接口方法accept(File f,String name),该方法中的参数 f 为,调用 list 的当前目录,参数 name 被实例化为当前目录中的一个文件名,当接口方法返回 true 时,list 方法就将名字为 name 的文件存放到返回的数组中。
import java.io.*;public class Filelei implements FilenameFilter {//此次使用本类作为接口 /** * @param args */ public void f(){ File f=new File("E:Myworkspace 8src"); String []filename=f.list();//以字符串的形式,先列出当前目录下所有文件看一下(有什么类型的文件) for(int i=0;i<filename.length;i++){ System.out.println(filename[i]); } System.out.println("********************************"); String []fname=f.list(this); for(int i=0;i<fname.length;i++){ System.out.println(fname[i]); } } public static void main(String[] args) { // TODO Auto-generated method stub new Filelei().f(); } @Override public boolean accept(File f, String name) {//重写接口方法 // TODO Auto-generated method stub return name.endsWith(".java");//返回当前目录下以.java结尾的文件 }}运行结果:
乔乔
287***2758@qq.com
1、public String[ ] list(FilenameFilter obj) 该方法用字符串的形式返回目录下的指定类型的所有文件
2、public File[ ] listFile(FilenameFilter obj) 该方法用 File 对象形式返回目录下的指定类型的所有文件
luffysman
N92***5465@stu.xjtu.edu.cn
FileOutputStream 读写文件举例中出现乱码, 跟字符集编码无关, 是由于读写的格式不同导致的。
// 读写文件, 以二进制读写, 有乱码, 是由于输入输出格式转换的原因, 和字符集编码方式无关public static void main(String[] args) { try { byte[] bWrite = {11, 21, 3, 40, 5 }; OutputStream os = new FileOutputStream("./out/test.txt"); for (int x = 0; x < bWrite.length; ++x) { os.write(bWrite[x]); } os.close(); InputStream is = new FileInputStream("./out/test.txt"); int size = is.available(); for (int x = 0; x < size; ++x) { System.out.print((byte) is.read() + " "); //强转为byte类型就好了 } is.close(); } catch (IOException e) { System.out.print("Exception"); }}luffysman
N92***5465@stu.xjtu.edu.cn
iamanoob
599***619@qq.com
BufferedReader 是支持同步的,而 Scanner 不支持。如果我们处理多线程程序,BufferedReader 应当使用。
BufferedReader 相对于 Scanner 有足够大的缓冲区内存。
Scanner 有很少的缓冲区(1KB 字符缓冲)相对于 BufferedReader(8KB字节缓冲),但是这是绰绰有余的。
BufferedReader 相对于 Scanner 来说要快一点,因为 Scanner 对输入数据进行类解析,而 BufferedReader 只是简单地读取字符序列。