java——流(Stream)、文件(File)和IO

public class HelloWorld {
	public static void main(String[] args) throws IOException {
		// 读取控制台输入
		char c;
		String str;

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		// 读取字符
		do {
			c = (char) br.read();
			System.out.println(c);
		} while (c != 'q');

		do {
			str = br.readLine();
			System.out.println(str);
		} while (!str.equals("end"));

	}

	// 读写文件
	class fileStreamTest {
		public void fileStream() {
			try {
				byte[] bWrite = { 11, 12, 3, 24 };
				OutputStream os = new FileOutputStream("test.txt");
				for (int i = 0; i < bWrite.length; i++) {
					os.write(bWrite[i]);
				}
				;
				os.close();

				InputStream is = new FileInputStream("test.txt");
				int size = is.available();
				for (int i = 0; i < size; i++) {
					System.out.println((char) is.read() + " ");
				}
				;
				is.close();

			} catch (IOException e) {
				e.printStackTrace();
			}

		}
	}

	// 上面的程序首先创建文件test.txt,并把给定的数字以二进制形式写进改文件,同时输出到控制台上。
	// 以上代码由于是二进制写入,可能存在乱码,可以使用一下代码实力来解决乱码问题。

	class fileStreamTest2 {
		public void main(String[] args) throws IOException {
			File file = new File("a.txt");

			// 构建FileOutputStream对象,文件不存在会自动创建
			FileOutputStream fop = new FileOutputStream(file);

			// 构建OutputStreamWriter对象,参数可以指定编码,默认
			OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");

			// 写到缓存区
			writer.append("中文写入");
			// 换行
			writer.append("\r\n");

			writer.append("English");

			// 刷新缓冲区,写入到文件,如果下面已经没有写入的内容,直接close也会写入
			writer.close();

			// 关闭输出流,释放系统资源
			fop.close();

			// 构建FileInputStream对象
			FileInputStream fip = new FileInputStream(file);

			// 构建inputStreamReader对象,编码与写入相同
			InputStreamReader reader = new InputStreamReader(fip, "Utf-8");

			StringBuffer sb = new StringBuffer();

			while (reader.ready()) {
				sb.append((char) reader.read());
				// 转换char加到StringBuffer对象中
			}
			;
			System.out.println(sb.toString());
			reader.close();
			// 关闭读取流
			fip.close();
			// 关闭输入流,释放系统资源
		}
	}

	// java中的目录
	// 创建目录
	// File类中有两个方法可以用俩创建文件夹
	// mkdir()方法创建一个文件夹,成功则返回true,失败则返回false。失败表明File对象指定的路径已经存在,或者由于整个路径不存在,该文件夹不能被创建。
	// mkdirs()方法创建一个文件夹和他的所有父文件夹。
	// 下面的例子创建“/tmp/user/java/bin”文件夹

	class CreateDir {
		public void main( String[] args ){
		   String dirname = "tmp/user/java/bin";
		   File d = new File( dirname );
		   //现在创建目录
		   d.mkdirs();
	   }
	}

	//读取目录
	//一个目录其实就是一个File对象,它包含其他文件和文件夹。
	//如何创建一个File对象并且他是一个目录,那么调用isDirectory()方法会返回true。
	//可以通过调用该对象上的list()方法,来踢去它包含的文件和文件夹列表。
	//下面展示的例子说明如何使用list()方法来检查一个文件夹中包含的内容。
	
    class DirList{
    	public void main( String[] args ){
    		String dirname = "/tmp";
    		File f = new File( dirname );
    		if( f.isDirectory() ){
    			System.out.println( "目录" + dirname );
    			String[] s = f.list();
    			for( int i = 0; i < s.length; i++ ){
    				File f1 = new File( dirname + "/" + s[ i ] );
    				if( f1.isDirectory() ){
    					System.out.println( s[i] + "是一个目录" );
    				}else{
    					System.out.println( s[i] + "是一个文件夹" );
    				}
    			}
    		}else{
    			System.out.println( dirname + "不是一个目录" );
    		}
    	}
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值