java输入输出学习笔记

  File 类定义了与平台无关的方法来操作文件。java的目录被当成一种特殊的文件,list方法返回目录中的所有目录和文件名。DOS下的路径分隔符为/,Unix下的路径分隔符为/,java都可识别。

   createNewFile必须用try catch,抛出异常。getParent与创建的File对象有关,注意转义字符的使用,lastModified()的返回值是long型的,可以创建Date对象来输出具体时间,注意引入util.Date包。

   RandomAccessFile类随机访问文件。根据构造函数来确定读写模式。个人感觉对于文字还是用writeUTF(),readUTF()比较方便。

   String 的trim()方法越过空格.

 对inputStream与OutputStream,FileInputStream与FileOutputStream,Reader与Writer,PipedInputStream与PipedOutputStream,ByteArayInputSteam与ByteArayOutputSteam类的使用。文件是数据的静态存储形式,而流是数据传输的形态。

  inputStream 中的read()方法返回值为int,最大值255,最小值1,不会有-1出现,与结束流的标记-1进行区别,虽然有垃圾回收器,但是一定不可以省略close方法,系统本身会产生资源,垃圾回收器只能回收JAVA中的资源,无法回收系统资源。

  OutputStream中的write(int)方法将最低字节写入,最高字节被舍弃,flush()用于将缓冲区内容强制写入设备,清空内存缓冲区。

   FileInputStream创建磁盘文件输入流,如果文件存在,这个文件中的内容将被覆盖,输入输出是针对程序而言的,

  PipedInputStream与PipedOutputStream类用于创建管道通信。实现模块间的通信。

ByteArayInputSteam和ByteArayOutputSteam完成对字节数组内容的读写,来支持类似内存虚拟文件功能。

管道有一定的容量,如果缓冲区满了后,就会造成数据传输有误.

一下代码应该要细看

import java.io.*;
public class testinout implements Runnable
{
Process p=null;
public testinout ()
{
System.out.println("testinout构造函数");
try{
 p=Runtime.getRuntime().exec("java mythread");
 new Thread(this).start();
}catch(Exception e) {}
}
  public static void main(String args[])
{
 testinout n=new testinout ();
n.send();
System.out.println("testinout执行到最后");
}
public void send()
{
System.out.println("send函数已经调用");
try{
 OutputStream ops=p.getOutputStream();
 while(true)
{
ops.write("help/r".getBytes());
}

}catch(Exception e) {}
}
 public void run()
{
System.out.println("开始run");try{
while(true)
   {InputStream in=p.getInputStream();
 BufferedReader bfr=new BufferedReader(new InputStreamReader(in));
 String strline=bfr.readLine();
if(strline!=null)
System.out.println(strline);
else
return;
}

}catch(Exception e) {}
}
}
 class mythread
{
public static void main(String args[])throws Exception
{
System.out.println("mythread");
while(true)
{
 String s=new BufferedReader(new InputStreamReader(System.in)).readLine();
if(s!=null)
 System.out.println("hi:!"+new BufferedReader(new InputStreamReader(System.in)).readLine());
else
return;
}
}
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值