字符流转换流&&网络(net包)

bos.close();
fos.close();
is.close();

----------如何转换为字符再写入到本地文件中

URL url = new URL("https://www.taobao.com");
InputStream is = url.openStream();//字节流

//三种支持汉字的编码方式: gbk utf-8 gb2312

InputStreamReader isr = new InputStreamReader(is,"utf-8");
BufferedReader br = new BufferedReader(isr);
File file = new File("f:\\图片\\taobao1.html");
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
String str = null;
while((str=br.readLine())!=null){//从服务器读取一行
bw.write(str);//将该行写入到本地文件中
bw.flush();//刷新

}
bw.close();
// fw.close();
字符流
一:读

1、一个字符一个字符的读

    FileReader fr = new FileReader(file);
    int n = 0;
    while((n=fr.read())!=-1){
        System.out.println((char)n);相比字节流 哪怕是一个一个读 也能读出中文
    }
    fr.close();

2、一行一行的读:我们聊天也是一行一行的发送 不是一个字一个字的发送

    File file = new File("f:\\图片\\6.txt");
    FileReader fr = new FileReader(file);
    BufferedReader br = new BufferedReader(fr);
    String str = null;
    while((str = br.readLine())!=null){
        System.out.println(str);
    }
    br.close();
    fr.close();

二:写

过两天的聊天:我将一个东西写到网络上,通过网络把数据传给对方 对方读取我的内容 所以先讲io再讲网络聊天

1、不能换行

    File file = new File("f:\\图片\\6.txt");
    FileWriter fw = new FileWriter(file);        fw.write("我想你了");
    fw.write("但是每次我都不敢打扰你");            fw.close();
    System.out.println("呵呵");

2、实现换行

    Scanner mys = new Scanner(System.in);
    File file = new File("f:\\图片\\6.txt");
    FileWriter fw = new FileWriter(file);
    BufferedWriter bw = new BufferedWriter(fw);
    while(true){
        System.out.println("请输入你要保存的内容:");
        String str = mys.next();
        bw.write(str);
        bw.flush();//务必记得刷新缓冲区
        bw.newLine();//新起一行
        if(str.equals("exit")){
            break;
        }
    }

    bw.close();
    fw.close();

三、net网络
1.获取自己的电脑

InetAddress inet = InetAddress.getLocalHost();
System.out.println(inet.getHostName());

2.获取局域网中别人的电脑

InetAddress inet = InetAddress.getByName("192.168.1.55");

3.获取互联网中的电脑
url:统一资源定位符 域名:www.baidu.com http:超文本传输协议

URL url = new URL("https://www.taobao.com");
InputStream is = url.openStream();//字节流

File file = new File("f:\\图片\\taobao.html");
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);

int n = 0;
while((n = is.read())!=-1){//每次从服务器读取一个字节
    bos.write(n);//将数据写入本地
    bos.flush();//刷新
}

// br.close();
// isr.close();
// is.close();


一、字符流:

Reader类
   |---FileReader类
   |---BufferedReader类
Writer类
   |---FileWriter类
   |---BufferedWriter类

二、网络(.net包)
1.获取自己电脑:
–InetAddress.getLocalHost()
2.获取局域网中别人的电脑
–InetAddress.getByName(“ip地址”);

3.***获取互联网中的电脑***
--URL url = new URL(例如百度);
InputStream is = url.openStream();
思路:先从对应服务器中读取数据 再将数据写入到本地文件中(边读边写的原则)

三、将字节流转换为字符流
–利用桥梁:InputStreamReader

注意:将字节流转换为字符流的过程中,可能会发生乱码的情况,需要设置编码方式,支持中文的编码方式只有3种,分别是:gbk utf-8 gb2312

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值