java简单的输入输出代码,java 输入跟输出 代码示例

java 输入和输出 代码示例

此处省略介绍,

193743179.jpg

193743180.jpg

package org.rui.io.inout;

import java.io.BufferedReader;

import java.io.FileReader;

/**

* 缓冲输入文件

* @author lenovo

*

*/

public class BufferedInputFile {

public static String read(String filename) throws Exception

{

BufferedReader br=new BufferedReader(

new FileReader(filename)

);

String s;

StringBuilder sb=new StringBuilder();

while((s=br.readLine())!=null)

sb.append(s+"\n");

br.close();

//getClass();

return sb.toString();

}

public static void main(String[] args) throws Exception {

//String path=BufferedInputFile.class.getResource(".").getFile().toString();

//System.out.println(read(path+"BufferedInputFile.java"));

String path="D:/Users/liangrui/workspace/thinking/src/org/rui/io/inout/";

System.out.println(read(path+"BufferedInputFile.java"));

}

}

/**

output:

同 上

*/

package org.rui.io.inout;

import java.io.*;

/**

* 从内存输入

* @author lenovo

*

*/

public class MemoryInput {

public static void main(String[] args) throws Exception {

String path="D:/Users/liangrui/workspace/thinking/src/org/rui/io/inout/";

//BufferedInputFile.read(path+"MemoryInput.java")

StringReader in=new StringReader(BufferedInputFile.read(path+"MemoryInput.java"));

int c = 0;

while((c=in.read())!=-1)

System.out.print((char)c);

}

}

/**

output:

同 上

*/

package org.rui.io.inout;

import java.io.ByteArrayInputStream;

import java.io.DataInputStream;

/**

* 格试化的内存输入

* @author lenovo

*

*/

public class FormattedMemoryInput {

public static void main(String[] args)

{

try {

String path="D:\\Users\\liangrui\\workspace\\thinking\\src\\org\\rui\\io\\inout/";

DataInputStream in=new DataInputStream(

new ByteArrayInputStream(

BufferedInputFile.read(path+"FormattedMemoryInput.java").getBytes()

));

while(true)

System.out.print((char)in.readByte());//返回值不能检测输入的是否结束

} catch (Exception e) {

System.out.println("end of stream");

}

}

}

package org.rui.io.inout;

import java.io.BufferedInputStream;

import java.io.ByteArrayInputStream;

import java.io.DataInputStream;

import java.io.FileInputStream;

/**

* 下面演示了怎样一次一个字节地的读取文件

* @author lenovo

*

*/

public class TestEOF {

public static void main(String[] args) throws Exception

{

String path="D:\\Users\\liangrui\\workspace\\thinking\\src\\org\\rui\\io\\inout/";

DataInputStream in=new DataInputStream(

new BufferedInputStream(

new FileInputStream(path+"TestEOF.java")

));

//注意 会随着所读的媒介类型的不同而有所不同,字面的意思就是 在没有阻塞的情况下所能读取的字节数

//对于文件 这意味着整个文件,但是对于不同类型的流,可能就不是这样的,因此要谨慎使用

while(in.available()!=0)

System.out.print((char)in.readByte());

}

}

package org.rui.io.inout;

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.ByteArrayInputStream;

import java.io.DataInputStream;

import java.io.FileInputStream;

import java.io.FileWriter;

import java.io.PrintWriter;

import java.io.StringReader;

/**

* 基本的文件输出

* @author lenovo

*

*/

public class BasicFileOutput {

public static void main(String[] args) throws Exception

{

String file="D:/BasicFileOutput.out";

String path="D:\\Users\\liangrui\\workspace\\thinking\\src\\org\\rui\\io\\inout/";

//读文件

BufferedReader in =new BufferedReader(

new StringReader(

BufferedInputFile.read(path+"BasicFileOutput.java")

)

);

//写

PrintWriter pw=new PrintWriter(

new BufferedWriter(new FileWriter(file))

);

int linecount=1;

String s;

while((s=in.readLine())!=null)

pw.println(linecount+++s);

pw.close();

//读已写入的文件

System.out.println(BufferedInputFile.read(file));

}

}

package org.rui.io.inout;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.PrintWriter;

import java.io.StringReader;

/**

* 文本文件输出的快揵方式

* @author lenovo

*

*/

public class FileOutputShortcut {

public static void main(String[] args) throws Exception

{

String file="D:/BasicFileOutput.out";

String path="D:\\Users\\liangrui\\workspace\\thinking\\src\\org\\rui\\io\\inout/";

//读文件

BufferedReader in =new BufferedReader(

new StringReader(

BufferedInputFile.read(path+"BasicFileOutput.java")

)

);

//写 java se5在printWriter中添加 了一个辅助构造器

PrintWriter pw=new PrintWriter(file);

int linecount=1;

String s;

while((s=in.readLine())!=null)

pw.println(linecount+++s);

pw.close();

//读已写入的文件

System.out.println(BufferedInputFile.read(file));

}

}

package org.rui.io.inout;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.ByteArrayInputStream;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.FileInputStream;

import java.io.FileOutputStream;

/**

* 存储和恢复数据

* 如果我们使用了dataoutputstream写入数据,java保证我们可以使用datainputstream准确地读取数据,

* 无论读和写数据平台多么不同

* utf-8是一种多字节格式,其编码长度根据实际使用的字符集会有所变化,如果我们的只是ASCII只占7位

* 浪费空间和带宽,所以utf-8将ASCII字符编码成单一字节的形式,而非ASCII字符则编码成两到三个字节的形式

* @author lenovo

*

*/

public class StoringAndRecoveringData {

public static void main(String[] args) throws Exception

{

String path="d:/data.txt";

//输出

DataOutputStream out=new DataOutputStream(

new BufferedOutputStream(

new FileOutputStream(path)

)

);

out.writeDouble(5.55);

out.writeUTF("hello world");

out.writeDouble(6.66);

out.writeUTF("你好 世界");

out.close();

//读取

DataInputStream in=new DataInputStream(

new BufferedInputStream(

new FileInputStream(path)

)

);

//

System.out.println(in.readDouble());

System.out.println(in.readUTF());

System.out.println(in.readDouble());

System.out.println(in.readUTF());

}

}

/**output:

5.55

hello world

6.66

你好 世界

*/

package org.rui.io.inout;

import java.io.BufferedInputStream;

import java.io.ByteArrayInputStream;

import java.io.DataInputStream;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.RandomAccessFile;

/**

* 读写随机访问文件

*

* 使用RandomAccessFile时,你必须知道文件排版,这样才能正确地操作它

* 拥有读取基本类型和utf-8字符串的各种具体方法,下面示例

*

* 你可能会考虑 使用 内存映射文件 来贷替randomaccessfile

* @author lenovo

*

*/

public class UsingRandomAccessFile {

static String file="rtest.dat";

static void display() throws Exception

{

RandomAccessFile rf=new RandomAccessFile(file,"r");

for(int i=0;i<7;i++)

System.out.println(

"value "+i+" : "+rf.readDouble());

System.out.println(rf.readUTF());

rf.close();

}

public static void main(String[] args) throws Exception

{

RandomAccessFile rf=new RandomAccessFile(file,"rw");

//写

for(int i=0;i<7;i++)

rf.writeDouble(i*1.414);

rf.writeUTF(" the end of the file");

rf.close();

//打印

display();

//写 打开并修改

rf=new RandomAccessFile(file,"rw");

rf.seek(5*8);

rf.writeDouble(47.0001);

rf.close();

//打印

display();

}

}

/**output:

value 0 : 0.0

value 1 : 1.414

value 2 : 2.828

value 3 : 4.242

value 4 : 5.656

value 5 : 7.069999999999999

value 6 : 8.484

the end of the file

value 0 : 0.0

value 1 : 1.414

value 2 : 2.828

value 3 : 4.242

value 4 : 5.656

value 5 : 47.0001

value 6 : 8.484

the end of the file

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值