java 字符串 文件_Java 将字符串输入文件中

题目介绍

从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存

思路分析

思路比较简单,先用Scanner对象获得一个字符串。然后创建文件,然后在将字符串输入到指定的文件中

使用类的对象

Java IO使用原则:

按照数据来源(去向)分类:

1.是文件:FileInputStream,FileOutputStream,FileReader,FileWriter

2.是byte[]:ByteArrayInputStream,ByteArrayOutputStream

3.是Char[]:CharArrayReader,CharArrayWriter

4.是String:StringBufferInputStream,StringReder,StringWriter

5.网络数据流:InputStream,OutputStram,Reader,Writer

按是否格式化输出

1.要格式化输出:PrintStream PrintWriter

按是否要缓冲分:

要缓冲:BufferedInputStream,BufferedOutputStream,BufferOutputStream,BufferWriter

按照数据格式分:

1.二进制格式(只要不能七确定是纯文本的):InputStream,OutputStream以其所有带Stream结束的子类

2.含应为和汉字或者其他编码方式:Reader,Writer及其所有带Reader,Writer的子类

按输入输出分:

1.输出:Reader,InputStream类型的子类

2.输出:Writer,OutputStream类型的子类

特殊需要:

1.从Stream到Reader,Writer的转换器,InputStreamReader,OutputStreamWriter

2.对象的出入输出:ObjectInputStream,ObjectOutputStream

3.进程间通信:PipeInputStream,PipeOutputStream,PipeWriter,PipeWriter

4.合并输入:SequenceInputStream

决定使用哪个类以及构造进程的准组:

1.考虑最原始的数据格式是什么

2.是输入还是输出

3.是否需要转换流

4.数据的去向

5.是否需要缓冲

6.是否需要格式化输出。

Java.io.Reader和java.io.InputStream组成了Java输入类。Reader用于读入16位字符,也就是Unicode编码字符,而InputStream用于读入ASCII字符和二进制数据。

对应的输出类也有差不多的区别。

import java.io.*;

import java.util.Scanner;

public class Test{

private String inputStr;

public void setInputStr(String Str){

this.inputStr=Str.toUpperCase();

}

public String getInputStr(){

return this.inputStr;

}

public void Save(String path){

File file=new File(path);

if(file.exists()){

System.out.println("创建单个文件"+path+"失败,目标文件已经存在");

}

if(path.endsWith((File.separator))){

System.out.println("创建单个文件"+path+"失败,目标文件不能是目录");

}

if(!file.getParentFile().exists()){

System.out.println("目标文件所在的目录不存在,准备创建它!");

if(!file.getParentFile().mkdirs()){

System.out.println("创建目标文件所在的目录失败!");

}

}

try{

Printstream(file);

Filewriter(file);

Printwriter(file);

FileOutstream(file);

}catch(Exception e){

e.printStackTrace();

}

}

public void Printstream(File file){

try{

PrintStream ps =new PrintStream(new FileOutputStream(file));

ps.println(this.getInputStr());

}catch(FileNotFoundException e){

e.printStackTrace();

}

}

public void Filewriter(File file){

try{

FileWriter fw=new FileWriter(file.getAbsolutePath(),true);

BufferedWriter bw=new BufferedWriter(fw);

bw.write(this.getInputStr());

bw.close();

fw.close();

}catch(IOException e){

e.printStackTrace();

}

}

public void Printwriter(File file){

try{

PrintWriter pw=new PrintWriter(new FileWriter(file.getAbsolutePath()));

pw.println(this.getInputStr());

pw.close();

}catch(IOException e){

e.printStackTrace();

}

}

public void FileOutstream(File file){

try{

FileOutputStream fos=new FileOutputStream(file.getAbsolutePath());

fos.write(this.getInputStr().getBytes());

fos.close();

}catch(IOException e){

e.printStackTrace();

}

}

public static void main(String[] args){

Scanner in =new Scanner(System.in);

String Str=in.nextLine();

Test temp=new Test();

temp.setInputStr(Str);

temp.Save("D:\\temp\\test.txt");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值