printwriter

PrintWriter write() vs print() method in Java [duplicate]

匿名 (未验证) 提交于 2019-12-03 00:46:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: This question already has an answer here: What is the exact difference between out.write() and out.print() 9 answers What is the difference between write() and print() methods in PrintWriter class in Java? 回答1: print() formats the output, while write() just prints the characters it is given. print() handles many argument types, converting them into printable strings of characters with String.valueOf(), while write() just handles single characters, arrays of characters, and strings. To illustrate the difference, write(int) interprets the

IO 输出流 追加模式

匿名 (未验证) 提交于 2019-12-02 23:43:01
输出流 如果不设置成追加模式,若写入已有文件,将清空原文件,重新写入; OutputStreamWriter与BufferedWriter有追加模式,append设置为true时,在已有文件末尾追加;append=false时,从已有文件第一行开始覆盖写入,若写入内容比原有文件短,则只覆盖部分内容; BufferedWriter需手动换行,bw.newLine(); PrintWriter比较特殊,无法直接设置追加模式 java.io.FileWriter fw = new java.io.FileWriter("C:\\Log.txt", true); //true为追加,FALSE为覆盖 java.io.PrintWriter pw = new java.io.PrintWriter(fw); PrintWriter 调用println方法 输出内容会自动换行 参考: http://blog.sina.com.cn/s/blog_4b5e75c60102xghb.html https://zhidao.baidu.com/question/518744437248150085.html 文章来源: https://blog.csdn.net/qq_19934363/article/details/92396377

mysocket

匿名 (未验证) 提交于 2019-12-02 23:38:02
client package com.sun.mysocket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import java.util.Scanner; /** * * @author JiangYuan Sun * @date 2019-04-18 11:23 */ public class Client { /** * * @author JiangYuan Sun * @throws IOException * @date 2019-04-18 11:23 */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub System.out.println("聊天通道已建立,请输入:"); Socket socket = new Socket("127.0.0.1",1000); new Thread(new Send(socket))

PrintWriter的println和write方法

匿名 (未验证) 提交于 2019-12-02 23:30:02
在写计算机网络编程作业时,就是这两个方法的使用害我想了半天才弄明白问题出在哪里。作业很简单就是c/s 单向请求式的tcp通信: 在使用write方法时,输入流却选择bufferedWriter的readLine方法导致读取时无法读取到换行符“\n”客户端一直在输入服务端一直在读取一行没有显示以上结果。 解决办法: 1.write方法改成prinltn方法即自动在后面加一个换行符 2.手动添加换行符 3.更改读取方式 以下为作业题目: package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; public class daytimetcpcli { public static void main(String[] args) { daytimetcpcli c=new daytimetcpcli(); c.receiveMessage(); } public void receiveMessage(){ Socket

Java Servlet实现的三种方式

匿名 (未验证) 提交于 2019-12-02 21:53:52
1 实现 Servlet 接口,然后实现接口中的五个方法,代码为: public class Hello implements Servlet { //该函数用于初始化servlet,类似于类的构造函数,该函数只会被调用一次 public void init (ServletConfig parm1) throws ServletException { System.out.println( "init it!" ); } public ServletConfig getServletConfig () { // TODO: Add your code here return null ; } //这个函数用于处理业务逻辑 //当用户每访问servlet时,都会调用 //req:用于获得客户端(浏览器)信息 //res:用于向客户端(浏览器)返回信息 public void service (ServletRequest req, ServletResponse res) throws ServletException, IOException { //从res中得到PrintWriter System.out.println( "Service it" ); PrintWriter pw = res.getWriter(); pw.println( "Hello world!"

Java 原生网络编程.

匿名 (未验证) 提交于 2019-12-02 21:53:52
一、概念 public static void uRLTest(){ try { //URL:统一资源定位符(网址) URL url = new URL("http://www.baidu.com"); InputStream inputStream = url.openStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line; while ((line = bufferedReader.readLine())!=null){ System.out.println(line); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void uRLConnectionTest(){ try {

Java中PrintWriter类

匿名 (未验证) 提交于 2019-12-02 21:53:52
打印流 构造方法 PrintWriter(File file) 使用指定文件创建不具有自动行刷新的新 PrintWriter。 public static void main(String[] args) throws IOException { //创建一个字符打印流对象 PrintWriter pw = new PrintWriter(new FileWriter("pw.txt")) ; //写数据 pw.println("hello");//本身自动换行并且向pw.txt文件打印内容 pw.flush(); //本身在构造的时候,就可以启动自动刷新 //关闭流 pw.close(); } public PrintWriter(Writer out,boolean autoFlush) 创建新 PrintWriter。 autoFlush 如果为 true,则 println、printf 或 format 方法将刷新输出缓冲区 public static void main(String[] args) throws IOException { //创建一个字符打印流对象,启动自动刷新 PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true) ; //加入换行 pw.println("world");

How to make the PrintWriter to write UTF-8?

送分小仙女□ 提交于 2019-12-02 21:41:56
How to make the PrintWriter to write UTF-8? pstream = new PrintWriter(csocket.getOutputStream(), true); String res = "some string"; pstream.println(res); // here I want to output string as UTF-8 Njol Use an OutputStreamWriter : pstream = new PrintWriter(new OutputStreamWriter( csocket.getOutputStream(), StandardCharsets.UTF_8), true) Daniil Look at Java: Difference between PrintStream and PrintWriter discussion. To be quick: you can use -Dfile.encoding=utf8 JVM parameter or method suggested in the discussion (see second answer). dave110022 Don't user PrintWriter. If you need UTF-8 encoding,

[二十四]JavaIO之PrintWriter

匿名 (未验证) 提交于 2019-12-02 20:41:15
功能简介 他与PrintStream的逻辑上功能目的是相同的--他们都想做同一件事情--更便捷的格式化打印输出 PrintWriter实现了PrintStream 中的所有 print 方法,除了那些用于写入原始字节的方法,对于那些字节,程序应该使用未编码的字节流进行写入 PrintStream会在换行符时自动调用自动刷新 PrintWriter在这一点上与PrintWriter不同, 只有在调用 println、printf 或 format 的其中一个方法时才可能完成此操作 PrintWriter也是装饰器模式 只不过看起来没那么典型而已 PrintWriter 既充当了Decorator也是一个ConcreteDecorator 它内部包含了一个 Writer out 构造方法 他内部有一个Writer out ,而且刚才我们已经说了他是装饰器模式 所以他必然会需要一个out,你从构造方法的实际情况也可以看得出来 构造方法主要内容包括下面三部分: 自动刷新,如果不传递,默认false 编码如果不设置,那么是系统默认 最根本的构造方法是 最根本的为什么没有字符编码相关的? 其实, 还有一个私有的 私有的构造方法,将带有字符编码情况的进行了二次的包装 在创建 OutputStreamWriter时使用 私有的构造方法还是绕回去到上面说的这个根本的构造方法去了

Java自学-I/O 缓存流

泄露秘密 提交于 2019-12-02 18:46:18
Java 缓存流BufferedReader,PrintWriter 以介质是硬盘为例, 字节流和字符流的弊端 : 在每一次读写的时候,都会访问硬盘。 如果读写的频率比较高的时候,其性能表现不佳。 为了解决以上弊端,采用缓存流。 缓存流在读取的时候, 会一次性读较多的数据到缓存中 ,以后每一次的读取,都是在缓存中访问,直到缓存中的数据读取完毕,再到硬盘中读取。 就好比吃饭, 不用缓存就是每吃一口都到锅里去铲 。 用缓存就是先把饭盛到碗里 ,碗里的吃完了,再到锅里去铲 缓存流在写入数据的时候,会先把数据写入到缓存区,直到缓存区 达到一定的量 ,才把这些数据, 一起写入到硬盘中去 。按照这种操作模式,就不会像字节流,字符流那样 每写一个字节都访问硬盘 ,从而减少了IO操作 示例 1 : 使用缓存流读取数据 缓存字符输入流 BufferedReader 可以一次读取一行数据 package stream; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class TestStream { public static void main(String[] args) { // 准备文件lol.txt其中的内容是