素材网 素材网

java IO文件操作简单基础入门例子,IO流其实没那么难

xw素材网
0

IO是JAVASE中非常重要的一块,是面向对象的完美体现,深入学习IO,你将可以领略到很多面向对象的思想。

今天整理了一份适合初学者学习的简单例子,让大家可以更深刻的理解IO流的具体操作。

1、文件拷贝

try {
			File inputFile = new File(args[0]);
			if (!inputFile.exists()) {
				System.out.println("源文件不存在,程序终止");
				System.exit(1);
			}
			File outputFile = new File(args[1]);
			InputStream in = new FileInputStream(inputFile);
			OutputStream out = new FileOutputStream(outputFile);
			byte date[] = new byte[1024];
			int temp = 0;
			while ((temp = in.read(date)) != -1) {
				out.write(date);
			}
			in.close();
			out.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

 2、java读文件:实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数,除此之外没有其他字符

 String fileName = "D:/date.java.bak";
		// String fileName = "D:/test.qqq";
		String line;
		int i = 0, j = 0, f = 0, k = 0;
		try {
			BufferedReader in = new BufferedReader(new FileReader(fileName));
			line = in.readLine();
			while (line != null) {
				// System.out.println(line);
				char c[] = line.toCharArray();
				for (int i1 = 0; i1 < c.length; i1++) {
					// 如果是字母
					if (Character.isLetter(c[i1]))
						i++;
					// 如果是数字
					else if (Character.isDigit(c[i1]))
						j++;
					// 是空格
					else if (Character.isWhitespace(c[i1]))
						f++;
				}
				line = in.readLine();
				k++;
			}
			in.close();
			System.out
					.println("字母:" + i + ",数字:" + j + ",空格:" + f + ",行数:" + k);
		} catch (IOException e) {
			e.printStackTrace();
		}

3、 从文件(d:\test.txt)中查出字符串”aa”出现的次数

try {
            BufferedReader br = new BufferedReader(new FileReader(
                    "D:\\test.txt"));
            StringBuilder sb = new StringBuilder();
            while (true) {
                String str = br.readLine();
                if (str == null)
                    break;
                sb.append(str);
            }
            Pattern p = Pattern.compile("aa");
            Matcher m = p.matcher(sb);
            int count = 0;
            while (m.find()) {
                count++;
            }
            System.out.println("\"aa\"一共出现了" + count + "次");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

4、 三种方法读取文件

 try {
			// 方法一
			BufferedReader br = new BufferedReader(new FileReader(new File(
					"D:\\1.xls")));
			// StringBuilder bd = new StringBuilder();
			StringBuffer bd = new StringBuffer();
			while (true) {
				String str = br.readLine();
				if (str == null) {
					break;
				}
				System.out.println(str);
				bd.append(str);
			}
			br.close();
			// System.out.println(bd.toString());
			// 方法二
			InputStream is = new FileInputStream(new File("d:\\1.xls"));
			byte b[] = new byte[Integer.parseInt(new File("d:\\1.xls").length()
					+ "")];
			is.read(b);
			System.out.write(b);
			System.out.println();
			is.close();
			// 方法三
			Reader r = new FileReader(new File("d:\\1.xls"));
			char c[] = new char[(int) new File("d:\\1.xls").length()];
			r.read(c);
			String str = new String(c);
			System.out.print(str);
			r.close();
		} catch (RuntimeException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

5、三种方法写文件

 try {
			PrintWriter pw = new PrintWriter(new FileWriter("d:\\1.txt"));
			BufferedWriter bw = new BufferedWriter(new FileWriter(new File(
					"d:\\1.txt")));
			OutputStream os = new FileOutputStream(new File("d:\\1.txt"));
			// 1
			os.write("ffff".getBytes());
			// 2
			// bw.write("ddddddddddddddddddddddddd");
			// 3
			// pw.print("你好sssssssssssss");
			bw.close();
			pw.close();
			os.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

6、读取文件,并把读取的每一行存入double型数组中

try {
			BufferedReader br = new BufferedReader(new FileReader(new File(
					"d:\\2.txt")));
			StringBuffer sb = new StringBuffer();
			while (true) {
				String str = br.readLine();
				if (str == null) {
					break;
				}
				sb.append(str + "、");
			}
			String str = sb.toString();
			String s[] = str.split("、");
			double d[] = new double[s.length];
			for (int i = 0; i < s.length; i++) {
				d[i] = Double.parseDouble(s[i]);
			}
			for (int i = 0; i < d.length; i++) {
				System.out.println(d[i]);
			}
			br.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}


@ 2013 xwcms.net . All Rights Reserved. xw素材网 | 备案号:晋ICP备13005902号 联系管理员
×

邮箱订阅

什么是邮箱订阅?

邮箱订阅是xw素材网为jquery爱好者与web程序员提供一项以邮箱的方式发送最新jquery资源与素材资源的模式,用户只需在左侧填写正确的邮箱用户名与邮箱地址我们将每天推荐最新优质资源到用户邮箱。当然每份邮箱都会有一个取消订阅按钮,当用户点击取消按钮时我们将会停止对用户发送邮箱资源推送。再次感谢大家对xw素材网的支持与关注。