JAVA小白IO流入门案例

本文详细介绍了JAVA中的流分类,包括输入流、输出流,字节流和字符流的区别,并针对字节输入流、字节输出流、字符输入流和字符输出流的各个子类进行了讲解,如FileInputStream、BufferedInputStream、FileOutputStream、BufferedOutputStream、FileReader、BufferedReader、FileWriter和BufferedWriter,同时提到了构造方法和追加输出的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.流的分类
1)按照方向分类:输入流 输出流
2)按照操作的单位分类: 字节流 字符流
3)组合情况:字节输入流、字节输出流,字符输入流、字符输出流

2.字节输入流
1)抽象父级:InputStream--不能实例化
2)普通子级:
    1>FileInputStream--操作文件的字节输入流
    构造方法参数:File file / String pathname
    2>BufferedInputStream--高效字节输入流
    构造方法参数:InputStream,但无法创建抽象父级对象,所以传的是FileInputStream

案例:

package cn.tedu.file;

import java.io.*;//*表示通配

/*本类用于练习字节输入流InputStream*/
public class TestIn {
    public static void main(String[] args) {
        //method();//字节流的读取
        method2();//高效字节流的读取
    }

    //本方法用于测试高效字节流的读取
    private static void method2() {
        //1.创建流对象
        //InputStream in = new BufferedInputStream(new FileInputStream(new File("E:\\ready\\1.txt")));//不常用

        //创建一个在本方法中都生效的局部变量,注意手动初始化,引用类型默认值为null
        InputStream in2 = null;
        try {
            in2 = new BufferedInputStream(new FileInputStream("E:\\ready\\1.txt"));
            //2.使用流对象
            //方式一
//            System.out.println(in2.read());
//            System.out.println(in2.read());
//            System.out.println(in2.read());
//            System.out.println(in2.read());//-1,

            //方式二
//            int b;//定义一个变量,用来保存本次读到的数据
//            while((b=in2.read())!=-1){//读取数据,只要不等于-1,说明还有数据,符合循环条件,继续循环
//                System.out.println(b);//打印本轮读到的数据
//            }

            //方式三
            for (int i = 0; i < (new File("E:\\ready\\1.txt").length()); i++) {
                System.out.println(in2.read());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            try {
                //3.关闭流对象
                in2.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    //本方法用于测试字节流的读取
    private static void method() {
        //创建一个在本方法中都生效的局部变量,注意手动初始化,引用类型默认值为null
        InputStream in2 = null;
        try {
            //1.创建流对象,注意InputStream是抽象父类,不可以实例化
            //File file = new File("D:\\ready\\1.txt");
            //String path = "D:\\ready\\1.txt";
            //Alt+shift+向上,向上移动本行代码

            //InputStream in = new FileInputStream(new File("D:\\ready\\1.txt"));//并不常用
            in2 = new FileInputStream("E:\\ready\\1.txt");

            //2.1使用流对象,读取指定文件中的数据
            /*read()每次调用都会读取一个字节,如果读到了文件数据的末尾,返回-1,
            * 这个方法的返回值类型是int,所以会查找指定字符对应的编码打印出来*/

//            System.out.println(in2.read());
//            System.out.println(in2.read());
//            System.out.println(in2.read());
//         
### APP自动化测试基础知识与入方法 #### 什么是APP自动化测试? APP自动化测试是一种通过脚本其他工具自动执行移动应用功能验证的过程。它旨在减少手动重复劳动,提高测试效率和覆盖率。对于初学者来说,掌握基础概念和技术栈是非常重要的。 #### 使用Appium进行Android自动化测试 Appium 是目前最流行的跨平台移动端自动化测试框架之一。它可以用于iOS和Android应用程序的测试,并支持多种编程语言(如Java、Python、JavaScript等)。其核心优势在于无需重新编译被测应用即可运行测试[^1]。 以下是基于Appium实现Android自动化测试的一个简单流程: 1. 安装Node.js环境以及Appium Server; 2. 配置设备连接者模拟器启动参数; 3. 编写测试脚本并通过驱动控制UI交互行为; 示例代码如下所示: ```java import io.appium.java_client.AppiumDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class AndroidTest { public static void main(String[] args) throws Exception{ DesiredCapabilities caps=new DesiredCapabilities(); caps.setCapability("platformName", "Android"); caps.setCapability("deviceName","emulator-5554"); caps.setCapability("appPackage", "com.example.android.apis"); caps.setCapability("appActivity", ".ApiDemos"); AppiumDriver driver = new AppiumDriver(new URL("http://localhost:4723/wd/hub"),caps); // Add your test steps here driver.quit(); } } ``` #### 学习资源推荐 除了官方文档外,《程序员小濠》提供了丰富的学习材料,涵盖了从基本理论到实际项目实践的内容[^2]。如果想要深入理解某个具体环节比如界面元素定位,则可以参考关于`Appium Inspector`使用的文章来熟悉可视化调试技巧[^3]。 另外还有其他优秀的开源解决方案可供探索,例如[Katalon](https://www.katalon.com/) 提供了一体化的Web UI/API/Mobile app 测试服务[^5] 。而对于历史演变过程感兴趣的读者也可以查阅相关视频资料获取更直观的认识[^4]。 #### 总结 综上所述,进入APP自动化测试领域需要扎实的技术背景加上不断练习积累经验。建议新手先从简单的案例入手,在熟练掌握了各个组件的工作原理后再尝试复杂场景下的综合运用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值