'输出蒸汽'是指任何接收字节序列或字符或其他内容的对象.所以,java.io.OutputStream,还有java.io.Writer,javax.xml.stream.XMLStreamWriter的writeCharacters方法等等.
我正在为一个类编写基于模拟的测试,该类的主要功能是将数据流写入其中一个(XMLStreamWriter,就像它一样).
问题是数据流是在对write方法的一系列调用中编写的,但重要的不是调用,而是数据.例如,给定XMLStreamWriter out,这些:
out.writeCharacters("Hello, ");
out.writeCharacters("world!");
Run Code Online (Sandbox Code Playgroud)
相当于:
out.writeCharacters("Hello, world!");
Run Code Online (Sandbox Code Playgroud)
这对我的目的来说无关紧要.将会有一些特定的调用序列,但我不在乎它是什么,因此我不想写出对该特定序列的期望.我只是希望能够以任何方式写入某个特定的数据流.
一种选择是切换到基于状态的测试.我可以在缓冲区中累积数据,并对其进行断言.但是因为我正在编写XML,这意味着要做一些相当复杂和丑陋的断言.模拟似乎是处理编写XML的更大问题的更好方法.
那么我如何用模拟做到这一点?
我正在使用Moxie进行模拟,但我很想知道任何模拟库的方法.
我正在尝试将其转换OutputStream为ByteArrayOutput流.我无法找到关于如何做到这一点的任何明确的简单答案.这个问题是在StackOverflow问题的标题中提出的,但问题的主体是如何将a更改ByteArrayStream为OuputStream.我OutputStream已经创建了一个,答案中给出的这个例子将无法编译!
我有一个已经构造的OutputStream,其长度为44字节,称为waveHeader.我想将其转换为ByteArrayOutputStream,因为我希望能够使用waveHeader.ToByteArray()将其更改为byte [],以便在以后的过程中使用;
是否有简单的铸造类型或允许这样的东西?
如果没有那么:
有没有办法在原始OutputStream中构造指向数据的指针,如果无法转换它的话?
如何访问OutputStream中包含的数据?
我是JAVA的新手.这对我来说只是一个爱好.在VisualBasic .net中的流更容易!
我将捕获一个来自android中的应用程序的图像,但是输出流存在一些问题,并且使用JAVA.IO的BROKEN PIPE出错.我的代码如果在下面.这是写命令功能的问题.我已经从git hub下载了这个演示版,所以请尽快帮助我.非常感谢提前.
void takeScreenshot()
{
String file ="/data/data/com.koushikdutta.screenshot/screenshot.bmp";;
OutputStream os = null;
int screenshotUid;
String screenshotUser = null;
Process sh = null;
try
{
try
{
sh = Runtime.getRuntime().exec("su -c sh");
os = sh.getOutputStream();
Log.e("","THE VALUE OF OBJECT IS:::::"+os.toString());
// file ="/data/data/com.koushikdutta.screenshot/screenshot.bmp";
screenshotUid = getUidForPackage("com.koushikdutta.screenshot");
screenshotUser = getUserForPackage("com.koushikdutta.screenshot");
}
catch(Exception e)
{
Log.e("","Hi Error created");
}
try
{
Thread.sleep(2000);
writeCommand(os, "rm "+file);
writeCommand(os, "mkdir /sdcard/dcim");
}
catch(Exception e)
{
Log.e("","Hello How are you??"+e.getMessage());
}
writeCommand(os, …Run Code Online (Sandbox Code Playgroud) 网络环境:
Https客户端<=============>代理服务器<==============> Https Server
192.168.17.11 <----- extranet --- ---> 192.168.17.22
10.100.21.10 <---- intranet -----> 10.100.21.11ps:没有默认网关的Http客户端,但它可以ping到10.100.21.11
描述:
操作系统:3台主机上的Ubuntu 12.04
Https客户端:用java实现(openjdk-6).有一个网络接口.
代理服务器:Apache2.2.有两个网络接口.
Https服务器:Tomcat6.Have一个网络接口.
我使用两种方法通过代理实现httpsurlconnection :(
为方便起见我没有写下关于ssl句柄函数来检查serverTrusted和hostnameVerifier问题.如果需要我会更新.)
InetSocketAddress proxyInet = new InetSocketAddress("10.100.21.11",80);
Proxy proxy = new Proxy(Proxy.Type.HTTP, proxyInet);
URL httpsUrl = new URL("https://192.168.17.22:8443/test");
HttpsURLConnection httpsCon = (HttpsURLConnection) httpsUrl.openConnection(proxy);
httpsCon.setDoOutput(true);
httpsCon.setDoInput(true);
httpsCon.setRequestMethod("POST");
OutputStream out = httpsCon.getOutputStream();
OutputStreamWriter owriter = new OutputStreamWriter(out);
owriter.write("<request>test</request>");
owriter.flush();
owriter.close();
...
Run Code Online (Sandbox Code Playgroud)
这种方法可行,我观察到数据包流量也符合我的期望.
HttpClient ---> ProxyServer ---> HttpServer
但是当我使用set Property方法时:
System.setProperty("http.proxySet", …Run Code Online (Sandbox Code Playgroud) 我需要读取带有文件路径"C:\ file.pdf"的pdf文件并将其写入outputStream.最简单的方法是什么?
@Controller
public class ExportTlocrt {
@Autowired
private PhoneBookService phoneBookSer;
private void setResponseHeaderTlocrtPDF(HttpServletResponse response) {
response.setContentType("application/pdf");
response.setHeader("content-disposition", "attachment; filename=Tlocrt.pdf" );
}
@RequestMapping(value = "/exportTlocrt.html", method = RequestMethod.POST)
public void exportTlocrt(Model model, HttpServletResponse response, HttpServletRequest request){
setResponseHeaderTlocrtPDF(response);
File f = new File("C:\\Tlocrt.pdf");
try {
OutputStream os = response.getOutputStream();
byte[] buf = new byte[8192];
InputStream is = new FileInputStream(f);
int c = 0;
while ((c = is.read(buf, 0, buf.length)) > 0) {
os.write(buf, 0, c);
os.flush();
}
os.close();
is.close();
} catch …Run Code Online (Sandbox Code Playgroud) 我正在编写一个通过JNI接口使用C++库的Java应用程序.C++库创建了类型的对象Foo,这些对象通过JNI传递给Java.
假设库具有输出功能
void Foo::print(std::ostream &os)
Run Code Online (Sandbox Code Playgroud)
我有一个Java OutputStream out.如何Foo::print从Java 调用以便输出显示out?有什么办法来要挟OutputStream到std::ostream在JNI层?我可以在缓冲区中捕获JNI层的输出,然后将其复制到out?
我正在编写一个多线程Java程序,其中每个线程可能需要将其标准输出重定向到单独的文件.每个线程都有自己的文件.可以在"每个线程"的基础上重定向System.out,还是可以跨所有线程更改System.out全局?
我知道一般的想法,但我不确定它是否有影响,因为Android api声明如下:"刷新此流.此方法的实现应确保写出任何缓冲的数据.此实现什么都不做."
这种实现没有任何作用< - 这是否意味着它无用或者我错过了什么?
我如何OutputStream使用org.apache.http.impl.client.DefaultHttpClient?
我想写一个长字符串到输出流.
使用HttpURLConnection你会像这样实现它:
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
OutputStream out = connection.getOutputStream();
Writer wout = new OutputStreamWriter(out);
writeXml(wout);
Run Code Online (Sandbox Code Playgroud)
有没有使用DefaultHttpClient类似于我上面的方法?我如何写一个OutputStream使用DefaultHttpClient而不是HttpURLConnection?
例如
DefaultHttpClient client = new DefaultHttpClient();
OutputStream outstream = (get OutputStream somehow)
Writer wout = new OutputStreamWriter(out);
Run Code Online (Sandbox Code Playgroud) 我已经使用创建了一个服务器ServerSocket.之后,我创建了Client Socket,并连接到此服务器.
之后,我使用InputStream执行"一些东西",并从Socket Object获取OutputStream.但是,我真的不太了解inputStream和outputStream.这是我的简单代码:
private Socket sock = null;
private InputStream sockInput = null;
private OutputStream sockOutput = null;
...
String msg = "Hello World";
byte[] buffer = null;
try {
sockOutput.write(msg.getBytes(), 0, test.length());
sockOutput.write("Hello StackOverFlow".getBytes(), 0, test.length());
buffer = new byte[test.length()];
sockInput.read(buffer, 0, test.length());
System.out.println(new String(buffer));
sockInput.read(buffer, 0, test.length());
System.out.println(new String(buffer));
} catch (IOException e1) {
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
结果将是:"Hello World"和"Hello StackOverFlow".
这是服务器端代码:
private int serverPort = 0;
private ServerSocket serverSock = null;
public VerySimpleServer(int serverPort) { …Run Code Online (Sandbox Code Playgroud) outputstream ×10
java ×9
android ×2
inputstream ×2
c++ ×1
file ×1
httpclient ×1
io ×1
iostream ×1
mocking ×1
networking ×1
pdf ×1
proxy ×1
sockets ×1
stream ×1
wave ×1